因此,我们有一个 WPF DataGrid,其中一些单元格中有一些 ComboBoxes 存在外部关系,但这意味着我们一次加载了数百个 ComboBoxes,这需要很长时间。我们想要做的是加载一个标签,直到它被点击,然后一个组合框被加载,我们可以很容易地用一个文本框来做到这一点。
问题是,我们的组合框工作并允许用户通过从多个显示值(例如 {Car, Dog, Cat})中进行选择来更改列中的外键值。但在用户点击标签之前,标签会显示外键值本身(例如{1, 2, 3})。
关于我们能做什么的任何想法?非常感谢任何帮助!
<DataGridTemplateColumn Header="Column Name" SortMemberPath="Column Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Path=DataViewBehindColumnName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox
DataContext="{DynamicResource ResourceKey=ViewModel}"
ItemsSource="{Binding Path=ReferenceTableName,
Converter={StaticResource dataViewToListConverter}}"
DisplayMemberPath="ReferenceTableDisplayNamesColumn"
SelectedValuePath="ReferenceTablePrimaryKeyColumn"
SelectedValue="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}},
Path=Item[DataViewBehindColumnName]}"
/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
亲切的问候,河豚