我在包含一个列表框的页面上有一个控件。我也有一个细节视图的另一个控件。控件之间的WPF绑定
的控件都拥有自己的视图模型,他们的子控件绑定到。
Image Outlook。它有一个文件夹列表,当您选择一个文件夹时,详细信息控件将显示该文件夹的内容。
如何将详细控件绑定到列表控件中的选定项目?
我在包含一个列表框的页面上有一个控件。我也有一个细节视图的另一个控件。控件之间的WPF绑定
的控件都拥有自己的视图模型,他们的子控件绑定到。
Image Outlook。它有一个文件夹列表,当您选择一个文件夹时,详细信息控件将显示该文件夹的内容。
如何将详细控件绑定到列表控件中的选定项目?
如果我得到了正确的答案,那么您将掌握主从情况。你能否将ViewModel的详细信息添加为主ViewModel的属性?这样你就不需要任何特别的东西。它应该自动工作。事情是这样的:
public class MyMasterViewModel
{
public List<MyDetailViewModel> Details
{ get; set; }
}
的MyMasterViewModel
集集合作为DataContext
以两种观点并进行适当的设置绑定。当您在主列表中移动时,详细列表将自动更新。
你可能需要设置IsSynchronizedWithCurrentItem
属性:
<ListBox ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True"
DisplayMemberPath="Something"/>
使用元素与元素的结合,这里链接MSDN http://msdn.microsoft.com/en-us/library/ms752347.aspx页面主详细的例子。
我的问题是,主视图是在不同的控制细节视图。我会尝试使用相同的ViewModel来控制两个控件 – 2010-04-27 15:13:47
如果它们在同一个窗口上,那么你可以在窗口上设置'DataContext'。如果你有其他的窗口数据上下文,看看你是否可以将这两个视图放在一个容器(网格或某些布局面板)中,然后将'DataContext'设置为该容器。 – zendar 2010-04-27 15:24:38