假设我们有 class User,一些属性是这样的:
public class User{
    public string Name{get;set;};
    public int Age{get;set;};
}
由于某种原因,我们无法修改用户(实现INotifyPropertyChanged),但我们想绑定到用户名。因此,如果名称在某处更改(不是我们,意味着我们可能不太清楚何时何地更改,但我们知道它会发生),UI 也可以更改。
有什么好的建议吗?
假设我们有 class User,一些属性是这样的:
public class User{
    public string Name{get;set;};
    public int Age{get;set;};
}
由于某种原因,我们无法修改用户(实现INotifyPropertyChanged),但我们想绑定到用户名。因此,如果名称在某处更改(不是我们,意味着我们可能不太清楚何时何地更改,但我们知道它会发生),UI 也可以更改。
有什么好的建议吗?
您绑定到该值,将其标记为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");
            }
        }
    }
}