WPF:多个UI触发一个命令

时间:2015-05-19 22:18:00

标签: c# wpf mvvm plot

方案

您执行分析,并且您想绘制结果。您的分析结果显示在不同的UI组件上,您还可以使用其他一些UI组件来自定义绘图。在这方面,我们假设:

  • 您有显示分析结果的Datagrid_1
  • 可让您选择情节分辨率的Combobox
  • 一些Radiobuttons,可让您选择绘图类型(即条形图,热图等)。
  • 最后,您有一个小数据网格(Datagrid_2),您可以选择不同的回归模型。

简单来说,您可以Button CommandButton绑定到一个函数,该函数将根据您对UI元素的选择更新绘图。这可以通过让您选择偏好然后点击Button来实现。但是,为了改善用户体验,我们希望自动完成该过程。这意味着当您的任何选择更改时,绘图会自动更新。这意味着:我们完全删除了If `DataGrid_1` `selectedItem` is changed If `Combobox` `selectedIndex` is changed If a `RadioButton` is `Checked` If `DataGrid_2` `selectedItem` is changed I would like the plot to be refreshed.

MVVM

问题

鉴于我的应用程序是以import java.util.ArrayList; ArrayList<Integer> vowels = new ArrayList<Integer>() while (line != null) { vowels.add(countVowels(line)); } 模式实现的,那么我的方案最好的解决方法是什么?

2 个答案:

答案 0 :(得分:1)

1)为可能被选中的外翻过滤器创建一个属性。那些不需要通知变更。

2)将该属性绑定到grid和combo的selectedItem。

3)为每个无线电制作一个bool属性并将其绑定到无线电的IsChecked属性。

4)将旧的Refresh命令绑定到GridI和组合更改的SelectedItem,以及每个无线电的Checked和Unchecked。您必须使用交互式触发器来执行此操作。

5)使目标网格的itemsSource通知更改。

6)更改刷新命令以使用这些过滤器属性并将结果设置为itemsSource属性。

如果没有人回答并且时间允许,我明天会发布一些代码示例!

答案 1 :(得分:1)

由于您正在使用MVVM模式,因此一种简单的方法是使数据绑定属性在Datagrid_1发生更改时触发数据刷新。

e.g。

a1.js