【发布时间】:2011-12-05 09:42:20
【问题描述】:
关于复选框绑定问题的几个答案,例如this one 建议
<checkbox IsChecked="{Binding Path=MyProperty, Mode=TwoWay}"/>
应该可以。我在下面的代码中遗漏了什么,这不起作用?
<Window x:Class="TestBinding.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<CheckBox Name="checkBox1" IsChecked="{Binding Path=MyProperty, Mode=TwoWay}">CheckBox</CheckBox>
</Grid>
</Window>
namespace TestBinding
{
public partial class Window1 : Window
{
bool property = true;
public Window1()
{
InitializeComponent();
}
public bool MyProperty
{
get
{
return property;
}
set
{
property = value;
}
}
}
}
更新
3 个很好的答案,非常感谢,我想全部接受,但接受了第一个提到 DataContext 的部分,这是影响我最感兴趣的绑定方向的部分。TwoWay 模式原来是红鲱鱼 感谢 MVVM 的建议,我正在使用它,但希望此代码尽可能简单
【问题讨论】:
-
你应该支持 INotifyPropertyChanged 接口以保持绑定工作
-
Binding关键字仅适用于DataContext属性。我会将 MyProperty 属性移动到视图模型并将其绑定到视图。