C#WPF从另一个DataGrid绑定到SelectedItem上的DataGrid

时间:2019-03-20 12:48:10

标签: c# wpf binding datagrid caliburn.micro

我有两个DataGrid元素。第一个加载了商品数据,第二个加载了基于第一个DataGrid的SelectedItem的其他数据。

第一个DataGrid与文章数据的绑定非常有效。

现在我有第二个,根据第一个选择,它应该显示更多数据。在ViewModel.cs中,我创建了以下内容:

    public BindableCollection<ArticleDataModel> ArticleDataList {
        get; set;
    }

    public BindableCollection<QuantityModel> WarehouseQuantityList {
        get; set;
    }


    private ArticleDataModel currentSelection;

    public ArticleDataModel CurrentSelection {
        get {
            return currentSelection;
        }
        set {
            currentSelection = value;
            NotifyOfPropertyChange(() => currentSelection);
            this.LoadQuantity();
        }
    }

第一个DatagridView绑定到 ArticleDataList ,所有数据均正确显示。选择数据集时,我可以在调试器中看到调用LoadQuantity()方法,并且WarehouseQuantityList包含所有数据。

但是,数据不会显示给我,甚至记录行也不会显示。

XAML中的绑定看起来像这样:

<!-- Artikel ListView -->
<DataGrid Grid.Column="0" Grid.Row="0"
    x:Name="ArticleDataList"
    AutoGenerateColumns="False"
    AlternatingRowBackground="#fafafa"
    FontSize="14"
    RowBackground="#eee"
    HorizontalGridLinesBrush="#ddd"
    VerticalGridLinesBrush="#ddd"
    RowHeaderWidth="0"
    SelectionMode="Single"
    SelectionUnit="FullRow"
    SelectedItem="{Binding CurrentSelection}">

<DataGrid x:Name="WarehouseQuantityList"
    AutoGenerateColumns="False"
    AlternatingRowBackground="#fafafa"
    FontSize="14"
    RowBackground="#eee"
    HorizontalGridLinesBrush="#ddd"
    VerticalGridLinesBrush="#ddd"
    RowHeaderWidth="0"
    SelectionMode="Single"
    SelectionUnit="FullRow">

绑定两次都是 x:Name ,项目绑定是这样的:

<DataGridTextColumn Header="Lagerplatz" Width="250" Binding="{Binding Path=Lagerplatz}"/>

两者的绑定在技术上是相同的,但是我没有任何错误或异常。加载的数据是正确的,并且在WarehouseQuantityList中也可用。只有DataGrid看不到它们。所以我以为我在弄错,只是不知道在哪里?

我总是乐于接受提示:-)

0 个答案:

没有答案