【问题标题】:Updating View in ViewModel在 ViewModel 中更新视图
【发布时间】:2013-02-28 19:52:36
【问题描述】:

假设我有一个绑定到 TextBlock 的属性。假设绑定看起来像这样:

public string Data
{
     get { return _text; }
     set
     { 
          _text = value;
          OnPropertyChanged("Data");
     }        
}

如果我说Data = "blue"; 在我的代码中的其他地方,为什么我必须再次说OnPropertyChanged("Text");?如果我不第二次添加 OnPropertyChanged,它将不会自动更新。我认为由于我在 set 访问器中执行 OnPropertyChanged,它会在我为属性分配某些内容时自动更新视图?

【问题讨论】:

  • 你有没有在 set 访问器中设置断点来验证代码是否在运行时 .Data = "blue"; 可能不是你认为的同一个类。
  • 什么?属性名称DataOnPropertyChanged() 中的属性名称不匹配。我不明白你在这里做什么。 XAML 绑定到什么? DataText??
  • @AaronLS 他们在同一个班级。
  • @HighCore 见上面的编辑。对不起,我当场编了代码。那不是我正在使用的实际代码。 XAML 绑定到数据。
  • 对属性和支持字段使用相同的名称:Data 和 _data。

标签: c# data-binding mvvm inotifypropertychanged


【解决方案1】:

我发现了问题所在。我正在做_text = "Blue"; 而不是Data = "Blue"; 一旦我将其更改为将文本分配给属性而不是视图已正确更新的字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2015-06-21
    • 2020-12-31
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多