我有一個將被啓用或使用一個布爾值的禁用按鈕,我使用MVVM:禁用和啓用按鈕使用變量
按鈕:
<Button x:Name="backButton" Content="Back" Command="{Binding BackCommand}"
IsEnabled="{Binding Path=BackBool, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
的布爾:
public bool BackBool
{
get { return isBackEnabled; }
set
{
this.RaisePropertyChangedEvent("isBackEnabled");
isBackEnabled = value;
this.RaisePropertyChangedEvent("isBackEnabled");
}
}
我已經將bool添加到變量手錶,並且它應該在啓用按鈕時正確更新爲true。
但是,他們自己的按鈕不會更新,並始終保持禁用狀態。
我錯過了什麼嗎?
*改變,通過*屬性*名稱參數:'this.RaisePropertyChangedEvent(「BackBool」)'。順便說一句,命令(ICommand)具有CanExecute方法,如果Button.Command被綁定,則Button.IsEnabled基於CanExecute的返回值設置。 – ASh
在更新後臺字段之前,不應激發'PropertyChanged'事件。此時,您可以觸發['INotifyPropertyChanging'](https://msdn.microsoft.com/library/system.componentmodel.inotifypropertychanging(v = vs.110).aspx)接口的'PropertyChanging'事件。 – Maxim
向下投票解釋請 –