Вы можете использовать публичный наблюдаемый список для хранения общедоступных данных или просто создать общедоступный метод настройки для хранения данных и получения из соответствующего контроллера
Вы можете указать, что все свойства были изменены, используя null
или string.Empty
для имени свойства в PropertyChangedEventArgs
. Это упоминается в документации для PropertyChanged .
Еще одно решение я раньше занимался проблемой: сначала устанавливание значения и затем вызов эти PropertyChangedEventArgs
путем добавления Set
функция в моем ViewModelBase
, который похож на это:
public class ViewModelBase : INotifyPropertyChanged
{
protected bool Set<T>(ref T backingField, T value, [CallerMemberName] string propertyname = null)
{
// Check if the value and backing field are actualy different
if (EqualityComparer<T>.Default.Equals(backingField, value))
{
return false;
}
// Setting the backing field and the RaisePropertyChanged
backingField = value;
RaisePropertyChanged(propertyname);
return true;
}
}
Вместо того, чтобы делать это:
public string Name {
get { return PersonEntity.Name; }
set { PersonEntity.Name = value; RaisePropertyChanged("Name");
}
можно теперь достигнуть того же путем выполнения этого:
public string Name {
get { return PersonEntity.Name; }
set { Set(ref PersonEntity.Name,value);
}