在我的mvvm ViewModel中,我有这样的字段

public int Delta { get; private set; }

但是,当我这样更新它时:
Delta = newValue;

用户界面未刷新。

我当时以为数据绑定(bind)将为我做到这一点。例如,我可以将collection声明为ObservableCollection,然后进行数据绑定(bind)。

但是没有ObservableInt,怎么说说需要刷新呢?

也许我应该提出一些“通知属性(property)变更”事件或其他事情?

最佳答案

您有两种选择:

  • 在您的类(class)上实现 INotifyPropertyChanged 接口(interface)。
  • 从DependencyObject继承,并将Delta实现为DependencyProperty。

  • 最简单的选择是#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的更多信息。

    10-07 19:19
    查看更多