【问题标题】:WPF Binding Between Controls控件之间的 WPF 绑定
【发布时间】:2023-03-06 21:02:01
【问题描述】:

我在包含列表框的页面上有一个控件。我还有另一个控件,它是详细视图。

两个控件都有自己的 ViewModel,它们的子控件绑定到。

图像展望。它有一个文件夹列表,当您选择一个文件夹时,详细控件会显示该文件夹的内容。

如何将详细控件绑定到列表控件中的选定项?

【问题讨论】:

    标签: wpf binding


    【解决方案1】:

    如果我没看错,你有主从情况。您可以将详细信息列表 ViewModel 添加为主 ViewModel 的属性吗?这样你就不需要任何特别的东西了。它应该自动工作。像这样的:

    public class MyMasterViewModel
    {
       public List<MyDetailViewModel> Details
       { get; set; }
    }
    

    MyMasterViewModel 的集合设置为DataContext 到两个视图并适当地配置绑定。当您浏览主列表时,详细列表将自动更新。
    您可能需要设置IsSynchronizedWithCurrentItem 属性:

    <ListBox ItemsSource="{Binding}" 
             IsSynchronizedWithCurrentItem="True"
             DisplayMemberPath="Something"/>
    

    【讨论】:

    • 我的问题是主视图与详细视图处于不同的控件中。我将尝试您的观点,即为两个控件使用相同的 ViewModel
    • 如果他们在同一个窗口,那么你可以在窗口上设置DataContext。如果您有其他窗口数据上下文,请查看是否可以将这两个视图放在某个容器(网格或某些布局面板)中,然后将 DataContext 设置为该容器。
    【解决方案2】:

    使用元素到元素的绑定,这里是指向 MSDN 页面 http://msdn.microsoft.com/en-us/library/ms752347.aspx 的链接以及主从示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多