【发布时间】:2023-03-06 21:02:01
【问题描述】:
我在包含列表框的页面上有一个控件。我还有另一个控件,它是详细视图。
两个控件都有自己的 ViewModel,它们的子控件绑定到。
图像展望。它有一个文件夹列表,当您选择一个文件夹时,详细控件会显示该文件夹的内容。
如何将详细控件绑定到列表控件中的选定项?
【问题讨论】:
我在包含列表框的页面上有一个控件。我还有另一个控件,它是详细视图。
两个控件都有自己的 ViewModel,它们的子控件绑定到。
图像展望。它有一个文件夹列表,当您选择一个文件夹时,详细控件会显示该文件夹的内容。
如何将详细控件绑定到列表控件中的选定项?
【问题讨论】:
如果我没看错,你有主从情况。您可以将详细信息列表 ViewModel 添加为主 ViewModel 的属性吗?这样你就不需要任何特别的东西了。它应该自动工作。像这样的:
public class MyMasterViewModel
{
public List<MyDetailViewModel> Details
{ get; set; }
}
将MyMasterViewModel 的集合设置为DataContext 到两个视图并适当地配置绑定。当您浏览主列表时,详细列表将自动更新。
您可能需要设置IsSynchronizedWithCurrentItem 属性:
<ListBox ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True"
DisplayMemberPath="Something"/>
【讨论】:
DataContext。如果您有其他窗口数据上下文,请查看是否可以将这两个视图放在某个容器(网格或某些布局面板)中,然后将 DataContext 设置为该容器。
使用元素到元素的绑定,这里是指向 MSDN 页面 http://msdn.microsoft.com/en-us/library/ms752347.aspx 的链接以及主从示例。
【讨论】: