我一定誤解了ViewModels
和Views的概念。但是現在我無法從地面重建應用程序,這一次做得更好。我的情況是,我有一個視圖,用戶可以加載文件並讀取它們,繪圖儀顯示圖形並執行一些操作。我希望能夠生成數據的報告(如摘要),但我想在其他視圖中使用它。我正在使用ModernUI,此另一視圖位於另一個選項卡中。兩個視圖 - 一個ViewModel
我想要的是兩個選項卡同步,當我在「繪圖儀選項卡」中加載文件時,該文件也必須加載到另一個視圖中。爲此,我認爲我需要的是將視圖綁定到相同的ViewModel
,其中我有例如LoadedFiles = List<File>
,所以我將能夠實現它。問題是,如果我綁定,要麼
MainViewModel vm = new MainViewModel();
DataContext = vm;
或XAML
<UserControl.Resources>
<UserControl.DataContext=local:MainViewModel/>
</UserControl.Resources>
我實際上綁定到不同的MainViewModels和數據不再被共享。我是否需要一些來自MVVM庫(例如Locator等)的類?如何做到這一點?我可以在將來做什麼,以便爲每個視圖分別使用不同的ViewModels,但數據是相同的(或不同的)?