我有一个Foo
课程:
public class Foo
{
public string Value { get; set; }
public string IsDirty { get; private set; }
}
我的xaml与TextBox
和Button
绑定到Foo
:
<TextBox Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}" ... />
<Button IsEnabled="{Binding IsDirty}" ... />
TextBox
中的文字更改后(KeyDown
更新),Foo.IsDirty
变为真(直到点击保存按钮)。
现在,Button.IsEnabled
在Foo.IsDirty
更改时不会发生变化。
我如何更改Button
上的绑定,以便在Foo.IsDirty = true
后立即启用,反之亦然?
谢谢!
答案 0 :(得分:1)
您需要在Foo类中实现接口INotifyPropertyChanged:
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
private bool _isDirty;
public bool IsDirty { get{ return _isDirty;}
private set{
_isDirty= value;
OnPropertyChanged("IsDirty"); }
}