我有一个
DataGrid
DataGridComboBox
这是一个很好的专栏。它正确地绑定到项目列表,正确地显示所选项目,正确地选择项目,并将所选项目的ID正确地绑定到基础行模型。
看起来是这样的:
<DataGridComboBoxColumn
x:Name="AssetColumn"
Width="3*"
DisplayMemberPath="Item"
Header="Item"
ItemsSource="{Binding Data.AssetDescriptions, Source={StaticResource proxy}}"
SelectedValueBinding="{Binding AssetDescriptionID}"
SelectedValuePath="AssetDescriptionID" />
我试图通过DataGridTemplateColumn和普通组合框实现同样的功能。我的努力:
<DataGridTemplateColumn Header="ItemTemplate" Width="3*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
DisplayMemberPath="Item"
ItemsSource="{Binding Data.AssetDescriptions, Source={StaticResource proxy}}"
SelectedValue="{Binding AssetDescriptionID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="AssetDescriptionID" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
不幸的是,这个不尊重
IEditable<T>
有没有一种方法可以这样写,它的工作方式应该与
可编辑<T>
界面
我知道我可能需要一个
CellEditingTemplate
让它正常工作,但我不知道该怎么做。我可以把同一个组合框放在
细胞模板
同样,但我不知道如何让列在收到焦点后切换到编辑模式,如果我只将组合框数据模板放在
细胞模板
,列中不显示任何数据。