0

假设我们有 class User,一些属性是这样的:

public class User{
    public string Name{get;set;};

    public int Age{get;set;};
}

由于某种原因,我们无法修改用户(实现INotifyPropertyChanged),但我们想绑定到用户名。因此,如果名称在某处更改(不是我们,意味着我们可能不太清楚何时何地更改,但我们知道它会发生),UI 也可以更改。

有什么好的建议吗?

4

1 回答 1

0

您绑定到该值,将其标记为OneWay无法推送到 ViewModel。

<TextBlock Text={Binding Path=User.Name, Mode=OneWay}" />

然后在 ViewModel 中设置您的用户名,以便在那个神秘的地方工作时可以设置/更改它。因此,当 ViewModel 更新时,View 会收到警报。可以在模型或视图模型上设置 INotifyPropertyChanged。

public class User
{
    private string name;
    public string Name
    {
        get { return name; }
        set
        {
            if(name != value)
            {
                name = value;
                RaisePropertyChanged("Name");
            }
        }
    }
}
于 2013-08-21T15:57:26.627 回答