我需要幫助了解MainViewModelWPF 應用程式中的 a 的實作。
例如,假設我有一個名為Tools的視窗,它由幾個ViewModels. 如何將該視窗的 DataContext 設定為MainViewModel代表我的所有內容ViewModels?一個元素的 DataContext,比方說 ListBox,是否會系結到其對應ViewModel的屬性MainViewModel?
uj5u.com熱心網友回復:
您在這里有幾個選擇:
- 覆寫類
OnStartup中的方法App,您將在其中創建一個視窗實體并在DataContext那里設定。
protected override OnStartup(/*Some args here*/)
{
base.OnStartUp(/*Some args here*/);
var mainWindowViewModel = new MainWindowViewModel();
var mainWindow = new MainWindow
{
DataContext = mainWindowViewModel
};
MainWindow = mainWindow;
MainWindow.Show();
}
不要忘記洗掉檔案中的StartupUri屬性并在那里設定。App.xamlShutdownMode=OnMainWindowClose
- 在視窗建構式中創建
MainWindowViewModel實體。
public class MainWindow : Window
{
public MainWindow()
{
DataContext = new MainWindowViewModel()
}
}
總而言之-我認為第一種方法更好,因為您可以解決App類中的所有視圖模型依賴關系并將該邏輯與視圖模型本身分開。
一個元素的 DataContext,比方說 ListBox,是否會系結到其對應
ViewModel的屬性MainViewModel?
是的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/489982.html
