设置场景;我有2个数据表,资产和模型,以及绑定到资产数据表的数据网格;这些表是通过数据库请求填充的。创建新资产时,用户将从模型的下拉列表中选择模型,模型组合框绑定到模型数据表,并从模型表中显示显示名称,而不是模型ID。模型下拉列表的文本字段将更新新资产数据表,并显示为ID,这是资产表如何链接到模型表的方式,也是导出时的要求。
当前所有这些都按预期工作,但是出于用户友好性的考虑,我想在资产的数据网格视图中显示显示名称,而不是ID,但是我不想更改ID在资产表中存在的事实,这就是事实。在导出时是必需的。
在组合框中,我可以使用displaymemberpath来显示不同的值,但是我找不到与datagrid等效的方法或执行我所追求的目标的方式,
数据网格的WPF代码(绑定到AssetCollection):
<DataGrid Name="newAssetRecords" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Width="Auto" Header="AssetTag" Binding="{Binding AssetTag,UpdateSourceTrigger=Explicit}"/>
<DataGridTextColumn Width="Auto" Header="Model" Binding="{Binding Model,UpdateSourceTrigger=Explicit}"/>
</DataGrid.Columns>
</DataGrid>
组合框的WPF代码(绑定到模型集合):
<ComboBox Name="combobox_newModel" SelectedValue="{Binding Model, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="[DisplayName]" SelectedValuePath="[SysID]" IsEditable="True"/>
资产类别的C#代码
public class AssetsCollection
{
public string SysID { get; set; }
public string SysUpdatedOn { get; set; }
public string AssetTag { get; set; }
public string Model { get; set; }
}
模型类的C#代码
public class ModelCollection
{
public string SysID { get; set; }
public string SysUpdatedOn { get; set; }
public string DisplayName { get; set; }
}
资产的模型是一个sysid,将存在于模型集合中。
现在,显然我还没有发布所有有关类或数据检索的初始化代码,但希望能对您有所帮助。
答案 0 :(得分:0)
您可以隐藏列:
Data.Columns["IdColumn"].Visible = false;
您可以设置标题:
Data.Columns[0].HeaderText = "Something";
如果您有一些示例代码,我们可能会找到一些通用的方法。
答案 1 :(得分:0)
问题已解决,我向资产类添加了一个名为ModelName的新字符串,并在组合框下拉菜单通过对models表的查找关闭时对其进行了更新。 (我还必须对资产收取实施inotify属性)
感谢您的所有帮助。