wpfmvvm如何获取到 <Button Content="删除" Tag="{Binding Id}" Name="dle"></Button>的tag值
时间: 2024-09-19 20:14:17 浏览: 72
在基于MVVM(Model-View-ViewModel)的WPF应用中,如当你有一个包含上述XAML代码的用户界面,并使用诸如 GalaSoft.MvvmLight (MVVMLight) 或 Prism等框架,获取`Tag`值需要在对应的视图模型(View Model)中操作。这里是一个基本的例子:
首先,在你的视图模型类中,假设有一个属性`Id`来对应`Tag`中的值:
```csharp
public class MyViewModel : INotifyPropertyChanged
{
private int _id;
public int Id
{
get { return _id; }
set
{
_id = value;
RaisePropertyChanged(nameof(Id)); // 通知视图更新
}
}
// ... 其他方法和属性
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void RaisePropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
```
然后,在绑定到视图的时候,你在`Button`的`CommandParameter`上绑定了`Id`属性,当按钮被点击时,`Id`会被传递给命令处理器:
```xaml
<Button Content="删除"
Command="{Binding DeleteCommand}"
CommandParameter="{Binding ElementName=dle, Path=Tag}">
</Button>
```
在这里,`DeleteCommand`通常在你的视图模型中定义,它接受一个`int`作为参数,即`Id`。
当你需要在视图模型中获取`Tag`值时,可以直接访问:
```csharp
private void SomeMethod()
{
int idFromTag = (int)this.dle.Tag; // 确保Tag是int类型
}
```
阅读全文