1

我将 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 进行更新?

4

2 回答 2

3

如果您订阅 的 PropertyChanged 事件SelectedClient,那么您可以在ClientAndDate任何时候Name或者Date是属性更改的原因时在该属性的视图模型中引发属性更改事件SelectedClient

即使该ClientAndDate属性是只读的,在您的视图模型中的任何位置为其发出属性更改通知都会导致绑定子系统从该属性刷新自身。

于 2013-04-03T12:51:25.940 回答
-1

你必须做一些“通知”方法。

像这个。

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

并在每次需要更新 UI 时使用“ClientAndDate”参数调用它。

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

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

于 2013-04-03T12:53:24.623 回答