在不打扰你我打算做的事情的情况下,有人能指出我在哪里可以得到默认的DataGridComboBoxColumn ControlTemplate吗?我确信肯定有一个控件模板或某种针对DataGridComboBoxColumn的样式,否则微软是如何构建DataGridComboBoxColumn的。
发布于 2018-03-21 17:01:10
而不用我打算做的事情来打扰你
我认为这并不是那么不重要,因为在MSDN页面DataGridComboBoxColumn Class上有这些建议:
表示一个DataGrid列,在其单元格中承载ComboBox控件。
和
如果要在DataGrid中使用其他控件,可以使用DataGridTemplateColumn创建自己的列类型。
用于样式化(也可以使用ControlTemplate!)对于ComboBox,您可以使用DataGridComboBoxColumn的ElementStyle和EditingElementStyle属性。
您可以在此处找到ComboBox的默认模板:ComboBox Styles and Templates
小示例:
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<TextBlock Text={Binding SomePropertyOfYourRowDataContext}/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridComboBoxColumn.ElementStyle>发布于 2018-03-21 23:04:17
有人能指出我在哪里可以得到默认的
DataGridComboBoxColumnControlTemplate吗?
DataGridComboBoxColumn不是Control,因此它没有ControlTemplate。
它在GenerateEditingElement方法中创建一个ComboBox,当DataGridComboBoxColumn的单元格处于编辑模式时,您看到的就是这个ComboBox:https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Controls/DataGridComboBoxColumn.cs,90924e66a85fbfa4。
https://stackoverflow.com/questions/49399418
复制相似问题