WPF MVVM视图模型中的新实例没有刷新绑定

时间:2013-04-16 12:15:04

标签: wpf mvvm

当我用新实例替换成员时,我不能为我的生活让我的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}"/>

但是当我加载测试时,控件绑定无法识别新对象已创建且不更新其内容。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

可能是一堆东西 - 你发布的代码看起来像伪代码,所以很难确定。

首先,您是否确实在ServerViewModel类上实现了INotifyPropertyChanged?

其次,您是否将viewmodel实例化代码放在构造函数之后 this.InitializeComponent();? (如果没有,你应该)

第三,你是否测试过在创建'Test'类时,Name实际填充了一个值?它还应该实现INotifyPropertyChanged接口。