Silverlight框两种方式结合的工作不如预期
-
20-09-2019 - |
题
我已简单的问题,设置了两个路数据绑定的一个框在Silverlight3.0.它必须是一个没有脑子,但可能我忘了我的大脑家今天...
我定义的一个模型代表了我..'数据'。我实施的举界面,以使UI的时候看到的数据的变化。
public class Model : INotifyPropertyChanged
{
private bool _value;
public bool Value
{
get { return this._value; }
set
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs("Value"));
this._value = value;
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
下一次我把一个框及一个按钮。'形式':
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="check" IsChecked="{Binding Value, Mode=TwoWay}" Content="SomeLabel"/>
<Button Click="Button_Click" Content="Test" />
</StackPanel>
然后我提供的数据的构造:
public MainPage()
{
InitializeComponent();
this.DataContext = new Model() { Value = true };
}
问题是你击框到检查/取消除非我去实施的举.如果去实现它,然而,那么UI不注意到,如果我改变的基础数据。
如果我删除该模式=双向位从IsChecked结合的表达,那么也UI不会注意到基础数据的变化,甚至如果该模型正在实施的界面。
我如何可以做到:
- 有的复选定的在启动时数据
- 有框IsChecked的改变修改的基础数据
- 有框检测的基础数据的变化和更新本身?
解决方案
你已经有了一个测序错误,在你的设性的过程,需要分配到 _value
之前 通知改变:-
set
{
this._value = value;
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs("Value"));
}
不隶属于 StackOverflow