C# 如何使用MVVM模式添加单选按钮更改事件?
我正在尝试创建动态单选按钮,我想在单选按钮更改事件中显示一个包含所选项目的消息框。我真的不知道如何用MVVM模式创建新的事件处理程序,也不知道如何使用C# 如何使用MVVM模式添加单选按钮更改事件?,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我正在尝试创建动态单选按钮,我想在单选按钮更改事件中显示一个包含所选项目的消息框。我真的不知道如何用MVVM模式创建新的事件处理程序,也不知道如何使用PropertyChangedEventHandler 这是我的密码 XAML PropertyChanged可以这样使用 PropertyChanged += delegate(string propertyName) { if(propertyName == "IsSelected") { // Do somet
PropertyChangedEventHandler
这是我的密码
XAML
PropertyChanged可以这样使用
PropertyChanged += delegate(string propertyName)
{
if(propertyName == "IsSelected")
{
// Do something
}
};
您通常使用命令来处理MVVM应用程序中的事件。有关这方面的更多信息,请参阅博客文章 将命令添加到显示
消息框的SelectableItem
类后,可以将单选按钮的命令
属性绑定到此源属性:
<RadioButton GroupName="Salads"
Content="{Binding ItemDescription}"
IsChecked="{Binding IsSelected}"
Command="{Binding YourCommand}"
Margin="5,1"/>
当您选中或取消选中单选按钮时,将调用该命令可能重复使用列表框而不是项控件:列表框具有开箱即用的选择支持将ICommand
属性添加到SelectableItem
并将单选按钮的command属性绑定到此属性。例如在MainWindowViewModel()的构造函数或窗口/用户控件的构造函数中(DataContext.OnPropertyChanged+=…)
public class SelectableItem : INotifyPropertyChanged
{
public string ItemDescription { get; set; }
public bool IsSelected { get; set; }
public int Id { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
PropertyChanged += delegate(string propertyName)
{
if(propertyName == "IsSelected")
{
// Do something
}
};
<RadioButton GroupName="Salads"
Content="{Binding ItemDescription}"
IsChecked="{Binding IsSelected}"
Command="{Binding YourCommand}"
Margin="5,1"/>