1 回答
TA贡献1866条经验 获得超5个赞
您必须注意实例化视图模型的方式,尤其是在共享视图模型时。现在,所有依赖类型都使用自己的实例MainViewModel(或不同的引用)。这就是为什么修改一个实例的值不会反映在另一个实例上。
利用ResourceDictionary. 考虑MainViewModel通过在 App.xaml 资源内创建共享实例来使全局可访问。
应用程序.xaml
<Application ... >
<Application.Resources>
<ResourceDictionary>
<VM:MainViewModel x:Key="SharedMainViewModel" />
</ResourceDictionary>
</Application.Resources>
</Application>
主窗口.xaml
<Window.DataContext>
<StaticResource ResourceKey="SharedMainViewModel" />
</Window.DataContext>
MainWindow.xaml.cs (固定构造函数)
public MainWindow()
{
InitializeComponent();
// The DataContext is initialized via XAML
}
Abc.cs
class Abc
{
private MainViewModel mainViewModel;
public Abc()
{
this.mainViewModel = Application.Current.Resources["SharedMainViewModel"] as MainViewModel;
}
}
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报