我想要实现的是,当勾选复选框时,文本框将显示True,当取消选中该复选框时,文本框将显示False。
目前的问题是,最初它可以工作,将检查框,文本框将显示为true。但是当我取消选中它时,文本框仍然是True。
很抱歉,如果我遗漏了一些简单的东西,仍然试图掌握Wpf和c#。
感谢您的帮助。
的Xaml:
<Grid>
<CheckBox Content="Check me" HorizontalAlignment="Left" Height="19" Margin="88,63,0,0" VerticalAlignment="Top" Width="86" IsChecked="{Binding CurrentValue, Mode= TwoWay}"/>
<TextBlock Text="{Binding CurrentValue, Mode=TwoWay}" HorizontalAlignment="Left" Height="39" Margin="88,82,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="86"/>
</Grid>
主窗口:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MainView();
}
}
的MainView:
public class MainView : INotifyPropertyChanged
{
private bool currentValue = true;
public event PropertyChangedEventHandler PropertyChanged;
public bool CurrentValue
{
get
{
return currentValue;
}
set
{
if (currentValue == value)
{
return;
}
currentValue = value;
RaisePropertyChange("Check_Value");
}
}
protected void RaisePropertyChange(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
答案 0 :(得分:2)
您正在按照如何正确解决此问题
错误地设置您的媒体资源 public bool CurrentValue
{
get
{
return currentValue;
}
set
{
if (currentValue != value)
{
currentValue = value;
RaisePropertyChange("CurrentValue");
}
}
}
答案 1 :(得分:1)
而不是
RaisePropertyChange("Check_Value");
尝试
RaisePropertyChange("CurrentValue");
传递的值必须与您的媒体名称相同