мой контекст: Entity Framework 4.0 + WCF Ria Data Service + Silverlight 4. Предположим, у меня есть сущность People из EF, затем я создал PeopleVM как:
public class PeopleViewModel : ViewModelBase
{
public PeopleViewModel(){
//....
this._hasChanges = MyDomainContext.HasChanges;
}
private People _People;
public People People
{
get { return _People; }
set
{
if (value != this._People)
{
value = this._People;
this.RaisePropertyChanged("People");
}
}
}
private bool _hasChanges;
public bool HasChanges
{
get { return this._hasChanges; }
set
{
if (this._hasChanges != value)
{
this._hasChanges = value;
this.RaisePropertyChanged("HasChanges");
}
}
}
//........
private RelayCommand _saveCommand = null;
public RelayCommand SaveCommand
{
//.....
}
private RelayCommand _cancelCommand = null;
public RelayCommand CancelCommand
{
//.....
}
}
в пользовательском интерфейсе xaml, я установил привязку как:
<TextBox Text="{Binding People.FirstName, Mode=TwoWay}" />
<TextBox Text="{Binding People.LasttName, Mode=TwoWay}" />
Затем я устанавливаю кнопку в пользовательском интерфейсе как:
<Button Content="Save" Command="{Binding SaveCommand}" IsEnabled="{Binding HasChanges}"/>
<Button Content="Undo" Command="{Binding CancelCommand}" IsEnabled="{Binding HasChanges}"/>
Итак, что я хочу:
изначально, кнопка должна быть отключенапотому что нет изменений данных.
когда пользователь вводит некоторые в текстовое поле FirstName, LastName, кнопка должна быть включена.
Но с вышекод, даже я меняю имя, фамилию, кнопка все еще в отключенном состоянии.
Как решить эту проблему?