wpf - 具有两个可绑定集合的viewmodel。使用一个集合的datacontext来过滤另一个集合

问题描述:

长标题,希望它是有道理的。似乎无法弄清楚我将如何实现这一点。或者,如果我的方法甚至在某种程度上与这种有点东西B/C的最佳做法正在跟踪我仍然在使用mvvm并可能不正确使用它。wpf - 具有两个可绑定集合的viewmodel。使用一个集合的datacontext来过滤另一个集合

我在我正在处理的应用程序中有一个简单的viewmodel,它包含两个指向datamodel集合的属性。

public ChuteGroupsModel Groups { get; set; } 
    public WaveStatusModel Waves { get; set; } 

这些数据模型中的每一个都包含我在我的MainWindow的tabcontrol中所需的所有数据。一个tabpage是一个统计数据网格,另一个页面是一个自定义用户控件,用于将物理“工作”区域可视化。

我今天决定,我想在我的自定义用户控件的工具提示内部显示网格中的一些统计值(项目数量,#剩余数量等)。我的两个集合只通过ID#字段连接。

因此,基本上我需要根据绑定到“组”的当前元素的ID#属性来筛选/绑定到我的“Waves”集合。

这里显而易见的答案是修改我的sql视图,以包含额外的字段,这些字段将使我们可以立即在我的应用程序中绑定到这些字段。

由于所有的数据我希望可视已经存在,我不禁觉得更改SQL是有点多余,一些简单的解决方案的存在是为了帮我收集这些价值观我的其他收藏。

任何人都可以提供任何我可以尝试做的建议吗?如果我的问题没有意义,我可以尝试用更多的代码片段重新声明它,并希望这会有所帮助。

也许关于你的ViewModel/View绑定的更多信息会有所帮助。正如所给出的那样,如果ViewModel将Groups和Waves的属性暴露给你的View,并且包含TabControl的View被绑定到你的ViewModel,我没有看到为什么TabPage上的控件不能绑定到来自任何一个数据模型的属性。换句话说,ViewModel可以从View中抽象出单独的数据模型集合,例如构建它自己的对象集合,这些对象集合公开了ChuteGroup及其关联的WaveStatus的属性。该视图然后可以绑定到该集合,并访问这两个对象的属性。