C# WPF:多用户界面&x27;触发一个命令
场景 您要执行分析并绘制结果。您的分析结果显示在不同的UI组件上,您还可以使用其他一些UI组件自定义绘图。在这方面,让我们假设:C# WPF:多用户界面&x27;触发一个命令,c#,wpf,mvvm,plot,C#,Wpf,Mvvm,Plot,场景 您要执行分析并绘制结果。您的分析结果显示在不同的UI组件上,您还可以使用其他一些UI组件自定义绘图。在这方面,让我们假设: 您有显示分析结果的Datagrid_1 用于选择绘图分辨率的组合框 一些单选按钮,用于选择绘图类型(即条形图、热图等) 最后,您有一个小的datagrid(datagrid_2),您可以选择不同的回归模型 简单地说,您可以使用一个按钮,它的命令绑定到一个函数,该函数将根据您对UI元素的选择更新绘图。这是通过让您选择您的首选项,然后单击按钮来实现的。但是,为了改善用
- 您有显示分析结果的
Datagrid_1
- 用于选择绘图分辨率的组合框
- 一些
,用于选择绘图类型(即条形图、热图等)单选按钮
- 最后,您有一个小的datagrid(
),您可以选择不同的回归模型李>datagrid_2
按钮
,它的命令
绑定到一个函数,该函数将根据您对UI元素的选择更新绘图。这是通过让您选择您的首选项,然后单击按钮来实现的。但是,为了改善用户体验,我们希望使流程自动化。这意味着您的任何选择一旦更改,绘图就会自动更新。这意味着:我们完全删除了按钮
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
模式实现的,对于我的场景来说,什么是最好的解决方案?1)为可能选择的evert筛选器创建一个属性。这些不需要通知变更
2) 将该属性绑定到grid和combo的selectedItem
3) 为每个收音机创建一个bool属性,并将其绑定到收音机的IsChecked属性
4) 将旧的Refresh命令绑定到grid和combo的SelectedItem changed,以及每个收音机的Checked和Unchecked。您必须使用交互触发器来实现这一点
5) 使目标网格的itemsSource通知更改
6) 将刷新命令更改为使用这些过滤器属性,并将结果设置为itemsSource属性
如果没有人回答,时间允许,我明天会发布一些代码示例 因为您使用的是MVVM模式,所以一种简单的方法是,当数据绑定属性发生更改时,触发Datagrid_1的数据刷新
e、 g
上述哪些UI元素参与选择结果?从你的文本中,我会说DataGrid1是经过过滤的,对吗?是的,datagrid_1
选择结果。
private Object _selectedComboBoxProperty;
public Object SelectedComboBoxProperty
{
get { return _selectedComboBoxProperty; }
set {
_selectedComboBoxProperty = value;
// Notify property changed
OnPropertyChanged("SelectedComboBoxProperty");
// Update Datagrid_1
UpdateResults();
}
private void UpdateResults()
{
// Inspect the current values of your selection properties
// Some business logic to filter the results
// Refresh the collection bound to the Datagrid_1
}