新手在这里.我一直试图围绕数据绑定,并希望尝试将视图中的复选框双向绑定到我称为"状态"的单独类中的布尔值.关键是要确保它们始终保持同步.
所以我在视图中创建了一个复选框,并将其绑定到State-class中前面提到的布尔属性,并伴有一个按钮,该按钮绕过复选框并直接切换布尔属性(恰当地标记为'Ninja!').关键在于测试复选框的数据绑定在属性更改时的反应.但是,我不能最好地弄清楚当属性更改时应该如何调用OnPropertyChanged方法.
这是我到目前为止所拥有的:
<CheckBox x:Name="checkBox" Content="CheckBox" HorizontalAlignment="Left" Margin="232,109,0,0" VerticalAlignment="Top" IsChecked="{Binding Checked, Mode=TwoWay}"/>
<Button x:Name="button" Content="Ninja!" HorizontalAlignment="Left" Margin="228,182,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/>
Run Code Online (Sandbox Code Playgroud)
我所做的"州"级代码:
namespace TestTwoWayBinding
{
class State : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private bool _checked;
public bool Checked {
get
{
return _checked;
}
set
{
_checked = value;
OnPropertyChanged(Checked);
}
}
public void Toggle()
{
if (!Checked)
{
Checked = true;
}
else
{
Checked = false;
}
}
public State(bool c)
{
this.Checked = c;
}
protected …Run Code Online (Sandbox Code Playgroud)