我使用一個包含兩個面板(左面板,右面板)的xaml文件。這意味着兩個觀點。 我也對每個視圖使用兩個ViewModel。 如何將DataContext綁定到這種情況?MVVM兩個Viewmodel在單個xaml文件中
0
A
回答
0
您可以在樹視圖中的任何子元素上更改DataContext。
否則表示,將兩個面板都設置爲它們各自的DataContext - 它將優先於父容器(比如window或usercontrol)的datacontext。
0
如果您有例如2 StackPanel中,試試這個:
<StackPanel x:Name="spFirst" />
<StackPanel x:Name="spSecond" />
而在後臺代碼:
FirstViewModel vm1 = new FirstViewModel();
SecondViewModel vm2 = new SecondViewModel();
spFirst.DataContext = vm1;
spSecond.DataContext = vm2;
Here你有例子(DoubleDataContextExample.zip)。
3
您需要各自擁有自己的ViewModel。您可能已經擁有包含多個ViewModel的視圖。你有一個綁定到List的ItemControl嗎?我通常這樣做。
我會創建一個具有兩個屬性的ViewModel。
public class ParentScreenViewModel : ViewModelBase
{
public ViewModelBase LeftPanel
{
get {...}
set {...}
}
public ViewModelBase RightPanel
{
get {...}
set {...}
}
}
然後XAML將綁定到這些:
<Panel x:Name="LeftPanel" DataContext="{Binding LeftPanel}" />
<Panel x:Name="RightPanel" DataContext="{Binding RightPanel}" />
無論如何,這是我會怎麼做。
相關問題
- 1. WPF MVVM:從XAML文件
- 2. MVVM - 如何將ViewModel包裝在ViewModel中?
- 3. MVVM ViewModel與MVC ViewModel
- 4. Mvvm Light ViewModel With ViewModel
- 5. WPF MVVM單元測試ViewModel?
- 6. 如何在兩個或更多視圖中共享單個Viewmodel?
- 7. 在MVVM中,每個ViewModel只與一個Model耦合嗎?
- 8. 兩個XAML文件可以在WPF中有一個cs文件嗎?
- 9. 上XAML在MVVM
- 10. 如何在另一個XAML文件中加載XAML文件
- 11. WPF XAML在同一個XAML文件
- 12. 兩個視圖 - 一個ViewModel
- 13. 將兩個單獨的.xaml文件合併到一個窗口中
- 14. 在多個XAML文件中拆分一個大的XAML項目
- 15. xaml中的菜單項最近文件實現Mvvm
- 16. WinRT XAML菜單導航MVVM
- 17. Caliburn.Micro GetAllInstances只返回一個viewModel(Caliburn.Micro MVVM)
- 18. MVVM Light Messages - 多個ViewModel實例
- 19. 多個綁定ViewModel查看MVVM
- 20. MvvM ViewModel到ViewModel通信
- 21. mvvm viewmodel vs asp.net mvc viewmodel
- 22. MVVM Light - ViewModel reusage
- 23. MVVM Light - ViewModel Serialization
- 24. MVVM ViewModel命名
- 25. MVVM - ViewModel/Model binding
- 26. MVVM,ViewModel,Model&MessageBoxes
- 27. MVVM ViewModel-View communication
- 28. 多個視圖 - SL4中的一個ViewModel MVVM燈
- 29. 使用xaml在MVVM中有條件地自動單擊按鈕
- 30. 爲什麼需要在一個文件中使用MVVM的兩個類
我試過這個,但它不工作。我無法將視圖模型設置爲堆疊面板。 – Lakshmanan
@Lakshmanan我爲你創建了一個例子,它在我的答案中處於底部。 – kmatyaszek