【发布时间】:2015-04-08 19:26:55
【问题描述】:
最近我问了类似的问题here 和here,但无法正确解决问题。
我有一个带有 ComboBox 的 DataGrid,它可以包含或不包含所选项目。但如果是这样,那么 ComboBox 应该在下拉菜单打开时选择它,而不是。
目前我有这个代码,除了第一次打开下拉菜单时,它可以工作。它没有被选中。
<DataGridTemplateColumn Header="Company">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.Companies}"
SelectedItem="{Binding Company, Converter={StaticResource NullValueConverter}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Company, Converter={StaticResource NullValueConverter}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
如果公司是null,NullValueConverter 可防止异常。
【问题讨论】:
-
公司是什么类型?它是一个对象,还是像 String 这样的原始类型?
-
它是一个具有
Id和Name属性的对象。
标签: c# wpf mvvm data-binding datagrid