DataGrid的ColumnHeader为Combox
本帖最后由 安心海叶 于 2016-11-1 17:02 编辑您好!
现在我想将DataGrid的每列列头Header定义为Combox,不知道如何实现?请求帮助
以下我是用C1DataGrid.TopRows实现了两行头,但事实上,需求是:第一行参数为Combox,第二行为相应的单位,当Combox的SelectIndex改变时,当前列的数据也改变。
所以,首先应该是第一行Combox的Style为:像以下图片中Combo定义的单元细胞一样
然后是改变当前列的数据,请求帮助?
您好,问题已收到,测试后给您答复。 dexteryao 发表于 2016-11-1 18:10
您好,问题已收到,测试后给您答复。
请问有测试结果吗? 设置列的Header是ComboBox,就可以实现将Header改成下拉框的样子。
代码参考:
<c1:C1DataGrid.Columns>
<c1:DataGridTemplateColumn>
<c1:DataGridTemplateColumn.Header>
<ComboBox></ComboBox>
</c1:DataGridTemplateColumn.Header>
</c1:DataGridTemplateColumn>
</c1:C1DataGrid.Columns> Alice 发表于 2016-11-2 17:27
设置列的Header是ComboBox,就可以实现将Header改成下拉框的样子。
代码参考:
不可以的,我做个demo
安心海叶 发表于 2016-11-3 09:27
不可以的,我做个demo
好,请您把demo发过来,我在帮你看看。 Alice 发表于 2016-11-3 14:42
好,请您把demo发过来,我在帮你看看。
谢谢回复~
但是这么添加后,是以下的样式
安心海叶 发表于 2016-11-3 15:57
谢谢回复~
但是这么添加后,是以下的样式
这是微软的ComboBox的默认样式。
如果你是期望可编辑的样式,你就把ComboBox的IsEditable属性设置为true。 本帖最后由 安心海叶 于 2016-11-4 16:00 编辑
Alice 发表于 2016-11-3 17:39
这是微软的ComboBox的默认样式。
如果你是期望可编辑的样式,你就把ComboBox的IsEditable属性设置为true ...
谢谢你的回复~
因为C1DataGrid的ColumnHeader全为Combox,所以我重新定义了ColumnHeaderStyle,如下:
<c1:C1DataGrid.ColumnHeaderStyle>
<Style TargetType="c1:DataGridColumnHeaderPresenter">
<Setter Property="Background" Value="AliceBlue"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<StackPanel Orientation="Vertical">
<ComboBox Name="cpetPara"
ItemsSource="{Binding Source={StaticResource ParameterNameData}, Path=ParaProperty}"
DisplayMemberPath = "ParaName"
Style="{StaticResource ComboBoxStyle}"
BorderThickness="0"></ComboBox>
<TextBlock Text="{Binding SelectedItem.ParaUnit, ElementName=cpetPara}" Height="30"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</c1:C1DataGrid.ColumnHeaderStyle>
那么对于DataGrid的每一列,我该如何设置当前列的SelectIndex?在xmal中能实现吗?
如下:
<c1:DataGridTextColumn Binding="{Binding Time}"/>
安心海叶 发表于 2016-11-4 15:57
谢谢你的回复~
因为C1DataGrid的ColumnHeader全为Combox,所以我重新定义了ColumnHeaderStyle,如下: ...
ComboBox这个是微软的控件,它本身提供了SelectedIndex属性可以设置默认的选择的项目。
我不太理解什么是当前列的SelectIndex?列上没有SelectIndex属性。