【发布时间】:2020-07-24 04:41:34
【问题描述】:
我有一个带有 2 个控件的窗口。一个是组合框(cmbUnit),另一个是DataGrid (dgvProducts)
cmbUnits 与 List<Unit> 集合绑定,Unit 类在下面
public class Unit
{
public int ID { get; set; }
public string Name { get; set; }
}
注意:显示成员是名称,值成员是 ID
其中,dgvProducts 与 List<Product> 集合绑定,Product 类在下面
public class Product
{
public int ID { get; set; }
public string ProductName { get; set; }
public int UnitID { get; set; }
}
在这里,我从我的数据库表(TBL_PRODUCTS) 中选择UnitID,我也可以通过加入表来检索UnitName。现在,我只想在我的Product 类中保留UnitID。
我的问题是,我的数据网格有一个列(datagridTemplateColumn),其中有一个组合框作为子项,我想通过传递UnitID 来显示其中的UnitName,就像我的组合框控件(cmbUnit) 一样
我在 datagrid 中的数据应该是
--------------------------------------------------
ID UnitName ProductName
--------------------------------------------------
12345 Kg Sample Product
Kg 应显示在组合框内的位置。
如何做到这一点?帮帮我!
cmbUnit 我的 XAML 代码是
<ComboBox Grid.Column="7" Grid.Row="1" Name="cmbUnit" ></ComboBox>
我从后面的代码将数据绑定到此控件。
dgvProducts 的 XAML
<DataGrid AutoGenerateColumns="False" Grid.ColumnSpan="2"
Name="dgvProduct"
Grid.Row="2">
<DataGrid.Columns>
<DataGridTemplateColumn Header="ID" Width="50" CanUserSort="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label VerticalContentAlignment="Center" Content="{Binding ID}"></Label>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Unit" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox IsEnabled="False"
Name="cmbGrUnit"
ItemsSource="{Binding Units}"
DisplayMemberPath="Name"
SelectedValuePath="ID"
SelectedValue="{Binding UnitID}"
></ComboBox>
<!--<Label VerticalContentAlignment="Center" Content="{Binding Name}"></Label>-->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Product Name" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label VerticalContentAlignment="Center" Content="{Binding ProductName}"></Label>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn></DataGrid.Columns>
谢谢
【问题讨论】:
-
你能添加你的组合框的xaml代码吗?
-
@DzianisKarpuk 您好,问题已修改,XAML代码已添加,请查看!
标签: c# wpf datagrid wpf-controls