当我用新实例替换成员时,我不能为我的生活让我的ViewModel更新我的View。
我的ViewModel包含正确的(我相信)通知,通过OnPropertyChanged更改了测试成员(已验证可以与其他成员绑定):
public class ServerViewModel
{
private TestViewModel _Test;
public TestViewModel Test
{
get {return _Test;}
set {_Test = value;OnPropertyChange("Test");}
}
...
...
}
在我的代码隐藏中,我在MainWindow()构造函数中实例化ServerViewModel并设置datacontext:
VServer = new ServerViewModel();
this.DataContext = VServer;
在我的视图模型中,我有一个通过分配新实例来加载测试的函数:
VServer.Test = new Test("c:\test\test3.test");
我的XAML尝试通过以下方式绑定到Test的成员:
<TextBox x:Name="TextTestName"
...
Text="{Binding Test.Name, Mode=TwoWay}"/>
但是当我加载测试时,控件绑定无法识别新对象已创建且不更新其内容。有什么想法吗?
答案 0 :(得分:1)
可能是一堆东西 - 你发布的代码看起来像伪代码,所以很难确定。
首先,您是否确实在ServerViewModel类上实现了INotifyPropertyChanged?
其次,您是否将viewmodel实例化代码放在构造函数之后 this.InitializeComponent();? (如果没有,你应该)
第三,你是否测试过在创建'Test'类时,Name实际填充了一个值?它还应该实现INotifyPropertyChanged接口。