WPF如何在ViewModel中更新View binded to ReadOnly属性

时间:2013-04-03 12:45:17

标签: wpf mvvm readonly

我有WPF窗口标题属性绑定到ViewModel ReadOnly属性为:

Title="{Binding ClientAndDate}"

ViewModel属性如下所示:

Public ReadOnly Property ClientAndDate As String
    Get
       Return SelectedClient.Name) & " " & SelectedClient.Date)
    End Get
End Property

我在ViewModel中实现了INotifyPropertyChanged,但由于这是ReadOnly属性,当SelectedClient.Name或SelectedClient.Date发生更改时它将如何通知UI更新?

2 个答案:

答案 0 :(得分:2)

如果您订阅了SelectedClient的PropertyChanged事件,那么只要ClientAndDateNameDate,您就可以在SelectedClient媒体资源的viewmodel中引发属性更改事件财产变更的原因来自ClientAndDate

即使{{1}}属性是只读的,但在viewmodel中的任何位置为其引发属性更改通知都会导致绑定子系统从属性中刷新自身。

答案 1 :(得分:-1)

您必须制作一些“通知”方法。

喜欢这个。

protected void OnPropertyChanged(string name)
{
     PropertyChangedEventHandler handler = PropertyChanged;
     if (handler != null)
     {
         handler(this, new PropertyChangedEventArgs(name));
     }
}

并使用“ClientAndDate”参数调用它,每个tyme都需要更新UI。

“ClientAndDate”是已更新的属性的名称。

Here是GET语句的完整示例,但您可以使用相同的方式。