这里非常简单的问题。我有一些复选框,其IsChecked绑定设置为我的viewmodel中的属性。绑定模式是twoway。但是,检查它们时,viewmodel属性未更新。我找到一篇关于设置复选框的clickmode的帖子,我尝试了所有选项:Hover,Press和Release。这些都没有解决问题。
答案 0 :(得分:0)
你的财产是否像CheckBox.IsChecked
一样可以被视为可以自杀的
否则验证MVVM模式工作所需的全部内容:您的属性是公共的,具有getter和setter,实现INotifyPropertyChanged
等。
其他属性是否正确绑定?您的DataContext
可能有误......
答案 1 :(得分:0)
试试这个:
<Window x:Class="WpfTestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" >
<StackPanel>
<CheckBox Width="250" Height="30" IsChecked="{Binding Path=IsTrue, Mode=TwoWay}" />
<TextBlock Text="{Binding Path=IsTrue}" />
</StackPanel>
</Window>
创建ViewModel:
public class MainWindowViewModel :INotifyPropertyChanged
{
private bool _isTrue;
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChange(string propertyName)
{
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public bool IsTrue
{
get { return _isTrue; }
set
{
_isTrue = value;
OnPropertyChange("IsTrue");
}
}
}
绑定到MainWindow.cs代码中的模型
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MainWindowViewModel();
}
}