我正在使用一个包含两个面板(左面板,右面板)的 xaml 文件。这意味着两个视图。我还对每个视图使用了两个 ViewModel。如何将 DataContext 绑定到这种情况?
问问题
1117 次
3 回答
3
您需要每个都有自己的 ViewModel。您可能已经有一个包含多个 ViewModel 的 View。你有绑定到 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}" />
无论如何,这就是我会做的。
于 2012-11-02T15:45:03.360 回答
0
您可以更改树视图中任何子元素的 DataContext。
否则,将两个面板设置为各自的 DataContext——它将优先于父容器(例如窗口或用户控件)的数据上下文。
于 2012-11-02T15:36:15.210 回答
0
如果你有两个 StackPanel,试试这个:
<StackPanel x:Name="spFirst" />
<StackPanel x:Name="spSecond" />
在代码隐藏中:
FirstViewModel vm1 = new FirstViewModel();
SecondViewModel vm2 = new SecondViewModel();
spFirst.DataContext = vm1;
spSecond.DataContext = vm2;
这里有示例(DoubleDataContextExample.zip)。
于 2012-11-02T15:36:44.870 回答