1 回答

TA貢獻1866條經(jīng)驗 獲得超5個贊
您必須注意實例化視圖模型的方式,尤其是在共享視圖模型時?,F(xiàn)在,所有依賴類型都使用自己的實例MainViewModel(或不同的引用)。這就是為什么修改一個實例的值不會反映在另一個實例上。
利用ResourceDictionary. 考慮MainViewModel通過在 App.xaml 資源內創(chuàng)建共享實例來使全局可訪問。
應用程序.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 (固定構造函數(shù))
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 關注
- 178 瀏覽
添加回答
舉報