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