假设我们有 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");
}
}
}
}