【问题标题】:How to bind two datagrids with two different set data?如何将两个数据网格与两个不同的集合数据绑定?
【发布时间】:2014-10-29 12:05:57
【问题描述】:

我有两个data grids。一个将从疾病表中加载疾病列表,另一个将从刺激物表中加载刺激物列表。问题是它们在我的database 中具有相同的表名“Id”、“Name”、“Description”。如果(我认为)我绑定它们,它可能会变得模棱两可,因为它们的形式相同。那么除了重命名database中的整个表之外,还有什么办法可以解决这个问题,比如在标记中指定要绑定什么表?

这是我的疾病表:

<DataGrid.Columns>
    <DataGridTextColumn x:Name="IdColumn" Binding="{Binding Id}" Header="Id" Visibility="Hidden"/>
    <DataGridTextColumn x:Name="DiseaseNameColumn" Binding="{Binding Name}" Header="Name" MinWidth="250" />
    <DataGridTextColumn x:Name="DiseaseDescriptionColumn" Binding="{Binding Description}" Header="Description" MinWidth="250" />
</DataGrid.Columns>

这是给我的 Irritants 表的:

<DataGrid.Columns>
    <DataGridTextColumn x:Name="IdColumn" Binding="{Binding Id}" Header="Id" Visibility="Hidden"/>
    <DataGridTextColumn x:Name="IrritantNameColumn" Binding="{Binding Name}" Header="Name" MinWidth="250" />
    <DataGridTextColumn x:Name="IrrirtantDescriptionColumn" Binding="{Binding Description}" Header="Description" MinWidth="250" />
</DataGrid.Columns>

【问题讨论】:

  • 只要您将ItemsSource 设置为两个不同的来源,其中每个项目都有IdNameDescription,就没有问题

标签: c# wpf datagrid


【解决方案1】:

您只需为 2 个表分配一个不同的名称:

疾病表:

  <DataGrid x:Name="Diseases">
    <DataGrid.Columns>
        <DataGridTextColumn x:Name="IdColumn" Binding="{Binding Id}" Header="Id" Visibility="Hidden"/>
        <DataGridTextColumn x:Name="IrritantNameColumn" Binding="{Binding Name}" Header="Name" MinWidth="250" />
        <DataGridTextColumn x:Name="IrrirtantDescriptionColumn" Binding="{Binding Description}" Header="Description" MinWidth="250" />
    </DataGrid.Columns>
</DataGrid>

刺激物表

  <DataGrid x:Name="Irritants">
    <DataGrid.Columns>
        <DataGridTextColumn x:Name="IdColumn" Binding="{Binding Id}" Header="Id" Visibility="Hidden"/>
        <DataGridTextColumn x:Name="IrritantNameColumn" Binding="{Binding Name}" Header="Name" MinWidth="250" />
        <DataGridTextColumn x:Name="IrrirtantDescriptionColumn" Binding="{Binding Description}" Header="Description" MinWidth="250" />
    </DataGrid.Columns>
    </DataGrid>
 <

在 *.cs 后面的代码中添加此代码以在 xaml 网格中加载数据

Diseases.ItemsSource = ARRAY_OR_LIST_OR_COLLECTION_OF_DISEAS;

Irritants.ItemsSource = ARRAY_OR_LIST_OR_COLLECTION_OF_IRRIANTS;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 2015-08-11
    • 1970-01-01
    • 2013-11-03
    相关资源
    最近更新 更多