在我的mvvm ViewModel中,我有这样的字段
public int Delta { get; private set; }
但是,当我这样更新它时:
Delta = newValue;
用户界面未刷新。
我当时以为数据绑定(bind)将为我做到这一点。例如,我可以将collection声明为
ObservableCollection
,然后进行数据绑定(bind)。但是没有
ObservableInt
,怎么说说需要刷新呢?也许我应该提出一些“通知属性(property)变更”事件或其他事情?
最佳答案
您有两种选择:
INotifyPropertyChanged
接口(interface)。 最简单的选择是#1。您可以很轻松地在您的类上实现INotifyPropertyChanged接口(interface):
public class YourClass : INotifyPropertyChanged
{
private int _delta;
public int Delta
{
get { return _delta; }
set { _delta = value; PropertyChanged?.Invoke(nameof(Delta)); }
}
public event PropertyChangedEventHandler PropertyChanged;
}
您可以在MSDN上阅读有关using and implementing dependency properties的更多信息。