【发布时间】:2014-08-12 15:31:48
【问题描述】:
我正在使用 SimpleMVVM 并且有两个单独的类(模型),一个使用第二个,如下所示:
public class Database : ModelBase<Database>
{
public String ServerName //{ get; set; }
{
get { return _ServerName; }
set
{
if (_ServerName != value)
{
_ServerName = value;
NotifyPropertyChanged(m => m.ServerName);
}
}
}
private String _ServerName = "MyTestServer";
// other properties removed for brevity
}
public class MyConfiguration
{
/// <summary>
/// Database information
/// </summary>
public Database DatabaseInfo
{
get { return _DatabaseInfo; }
set
{
if (_DatabaseInfo != value)
{
_DatabaseInfo = value;
NotifyPropertyChanged(m => m.DatabaseInfo);
}
}
}
private Database _DatabaseInfo = new Database();
}
当'ServerName' 改变时,NotifyPropertyChanged(m => m.ServerName); 命令执行但NotifyPropertyChanged(m => m.DatabaseInfo); 不执行
当Database 的属性之一发生变化时,如何使NotifyPropertyChanged(m => m.DatabaseInfo); 触发?
【问题讨论】:
-
如果您需要跟踪子类属性的变化,您可以订阅它的 OnPropertyChanged 事件。
-
我尝试了以下两种方法,但从未调用过 DataBasePropertyChanged 方法。这可能是因为这些类都是模型而不是视图模型吗?我可以在模型上实现 PropertyChanged 吗?
-
你为什么需要这个?如果您将 xaml 中的任何位置绑定到 {Binding DatabaseInfo.ServerName} 您的 ServerName 值将被更新。为什么还需要更改 DatabaseInfo 的属性?
标签: c# wpf mvvm inotifypropertychanged simple-mvvm