Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF MVVM视图模型中的新实例未刷新绑定_Wpf_Mvvm - Fatal编程技术网

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

WPF MVVM视图模型中的新实例未刷新绑定,wpf,mvvm,Wpf,Mvvm,当我用新实例替换成员时,我无法让我的ViewModel更新我的视图 My ViewModel包含适当的(我相信)通知,表明测试成员已通过OnPropertyChanged(验证为与其他成员绑定): 在我的codebehind中,我在MainWindow()构造函数中实例化ServerViewModel并设置datacontext: VServer = new ServerViewModel(); this.DataContext = VServer; 在我的视图模型中,我有一个通过分配新实例加

当我用新实例替换成员时,我无法让我的ViewModel更新我的视图

My ViewModel包含适当的(我相信)通知,表明测试成员已通过OnPropertyChanged(验证为与其他成员绑定):

在我的codebehind中,我在MainWindow()构造函数中实例化ServerViewModel并设置datacontext:

VServer = new ServerViewModel();
this.DataContext = VServer;
在我的视图模型中,我有一个通过分配新实例加载测试的函数:

VServer.Test = new Test("c:\test\test3.test");
我的XAML尝试通过以下方式绑定到测试的成员:

<TextBox x:Name="TextTestName" 
...
Text="{Binding Test.Name, Mode=TwoWay}"/>


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

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

首先,您确定要在ServerViewModel类上实现INotifyPropertyChanged吗

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


第三,您是否测试过,在创建“Test”类时,名称实际上填充了一个值?它还应该实现INotifyPropertyChanged接口。

哦,亲爱的。当我注意到我忘了在ServerViewModel类上实际实现INotifyPropertyChanged接口时,我感到非常舒服,并准备对上述所有内容发布“是”。现在它起作用了。非常感谢!
<TextBox x:Name="TextTestName" 
...
Text="{Binding Test.Name, Mode=TwoWay}"/>