WPF アプリに Model View View-Model パターンを使用しています。2 つのプロパティを持つ ViewModel (ページの DataContext として設定) があり、そのうちの 1 つは PropertyChanged イベントを持つエンティティです。イベント ハンドラーで、他のプロパティ (ブール値) の値を何らかの値に設定します。
これで、Button と TextBox のプロパティが最初の読み込みで適切にバインドされ、PropertyChanged イベントが発生して処理が行われます。ただし、ボタンの IsEnable プロパティは、バインド先のプロパティの変更を反映するために更新されません。
ViewModel は次のようになります。
public sealed class CustomerPageViewModel
{
public Customer Customer
{
get;
set;
}
public bool Editing
{
get;
private set;
}
private void Customer_PropertyChanged(object sender,
System.ComponentModel.PropertyChangedEventArgs e)
{
Editing = true;
}
}
そして、xaml sorta は次のようになります。
<TextBox Text="{Binding Customer.Name}" />
<Button Content="Save Changes" IsEnabled="{Binding Editing}" />
ViewModel の基になるプロパティを変更するときに、ボタンの IsEnable プロパティを更新するにはどうすればよいですか?