使用WPF Caliburn,如何根据组合框选择更改数据网格绑定?

时间:2018-05-08 04:51:32

标签: wpf mvvm caliburn

即将添加以下功能

enter image description here

如果选择此组合框,我想更改datagrid的itemssource。

有没有与此相关的例子?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

  1. 创建一个WPF项目。

  2. 使用组合框和数据网格创建一个视图(xaml)。

  3. 为这个新创建的视图创建一个视图模型,并为组合框和网格的ItemsSource声明公共属性(集合/列表)。还具有组合框中所选项目的属性。

  4. 将此视图模型设置为视图的数据上下文。

  5. 在组合框的选定项目的设置器中 - 将绑定到数据网格的ItemsSource的属性更改为通过调用方法或您希望的集合。

答案 1 :(得分:0)

我这样做了:

在xaml中添加caliburn的命名空间

xmlns:cal="http://www.caliburnproject.org"

这是组合框:

<ComboBox ItemsSource="{Binding ComboBoxItemSource}" SelectedItem="{Binding SelectedItem}" cal:Message.Attach="[Event SelectionChanged] = [ComboBoxSelectionChanged()]" />

并且viewmodel应该有这个方法:

public void ComboBoxSelectionChanged()
    {
        // here based on the SelectedItem you can change the ItemSource for the dataGrid.
    }

无论何时更改Combobox的selectedItem,该方法都会受到影响,根据您需要的逻辑,您可以为dataGrid分配ItemSource。

希望这会有所帮助:)