Wpf &引用;ComboBoxItem的内联集合;在DataGridComboxColumn列中
说: 要填充下拉列表,请首先为设置ItemsSource属性 通过使用以下选项之一来创建组合框:Wpf &引用;ComboBoxItem的内联集合;在DataGridComboxColumn列中,wpf,xaml,datagrid,Wpf,Xaml,Datagrid,说: 要填充下拉列表,请首先为设置ItemsSource属性 通过使用以下选项之一来创建组合框: 静态资源。有关更多信息,请参见StaticResource标记扩展 一个x:静态代码实体。有关详细信息,请参见x:静态标记扩展 ComboBoxItem类型的内联集合 使用“ComboBoxItem类型的内联集合”,我想到了类似这样的事情: <DataGrid> <DataGrid.Columns> <DataGridComboBoxColumn>
- 静态资源。有关更多信息,请参见StaticResource标记扩展李>
- 一个x:静态代码实体。有关详细信息,请参见x:静态标记扩展李>
- ComboBoxItem类型的内联集合
<DataGrid>
<DataGrid.Columns>
<DataGridComboBoxColumn>
<ComboBoxItem Content="None" Tag="0" />
<ComboBoxItem Content="Few" Tag="1" />
<ComboBoxItem Content="Some" Tag="2" />
<ComboBoxItem Content="Enough" Tag="3" />
<ComboBoxItem Content="Lots" Tag="4" />
<ComboBoxItem Content="Too much" Tag="5" />
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
但它不起作用。我知道另一种填充DataGridComboBoxColumn的方法,但我对此很好奇,因为我在研究中没有发现这方面的内容。。。“ComboBoxItem类型的内联集合”是什么意思?这里的关键是
DataGridComboxColumn
不是一个ComboxItem类型,引用的文档片段不适用
我认为,无法在列定义中添加ComboBoxItem
元素的原因是,它会多次将它们添加到可视化树中(在填充每个ComboBoxItem
时,这些项将被“重用”而不是克隆)
但据我所知,datagridcomboxcolumn
只是一个列定义,它公开了一些ComboBox
属性,默认情况下显示为ComboBox
。我的观点是,它没有用DataGridTemplateColumn
无法实现的额外功能
这里有一个备选方案可以让您开始:
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox>
<ComboBoxItem Content="None" Tag="0" />
<ComboBoxItem Content="Few" Tag="1" />
<ComboBoxItem Content="Some" Tag="2" />
<ComboBoxItem Content="Enough" Tag="3" />
<ComboBoxItem Content="Lots" Tag="4" />
<ComboBoxItem Content="Too much" Tag="5" />
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
与前面的场景不同,这次它可以工作,因为ComboBoxItem
元素是在DataTemplate
中定义的,这意味着XAML处理器实际上将它们转换为FrameworkElementFactory
对象,反过来,它们能够根据需要生成模板化的ComboBoxItem
元素