找回密码
 立即注册

QQ登录

只需一步,快速开始

安心海叶

中级会员

66

主题

255

帖子

717

积分

中级会员

积分
717

活字格认证微信认证勋章

安心海叶
中级会员   /  发表于:2016-11-1 11:21  /   查看:9915  /  回复:21
本帖最后由 安心海叶 于 2016-11-1 17:02 编辑

您好!

现在我想将DataGrid的每列列头Header定义为Combox,不知道如何实现?请求帮助

以下我是用C1DataGrid.TopRows实现了两行头,但事实上,需求是:第一行参数为Combox,第二行为相应的单位,当Combox的SelectIndex改变时,当前列的数据也改变。



所以,首先应该是第一行Combox的Style为:像以下图片中Combo定义的单元细胞一样


然后是改变当前列的数据,请求帮助?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

21 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-1 18:10:20
沙发
您好,问题已收到,测试后给您答复。
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-2 16:38:50
板凳
dexteryao 发表于 2016-11-1 18:10
您好,问题已收到,测试后给您答复。

请问有测试结果吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-2 17:27:26
地板
设置列的Header是ComboBox,就可以实现将Header改成下拉框的样子。
代码参考:
  1. <c1:C1DataGrid.Columns>
  2.                 <c1:DataGridTemplateColumn>
  3.                     <c1:DataGridTemplateColumn.Header>
  4.                         <ComboBox></ComboBox>
  5.                     </c1:DataGridTemplateColumn.Header>
  6.                 </c1:DataGridTemplateColumn>
  7.             </c1:C1DataGrid.Columns>
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-3 09:27:23
5#
Alice 发表于 2016-11-2 17:27
设置列的Header是ComboBox,就可以实现将Header改成下拉框的样子。
代码参考:

不可以的,我做个demo
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-3 14:42:12
6#
安心海叶 发表于 2016-11-3 09:27
不可以的,我做个demo

好,请您把demo发过来,我在帮你看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-3 15:57:40
7#
Alice 发表于 2016-11-3 14:42
好,请您把demo发过来,我在帮你看看。

谢谢回复~
但是这么添加后,是以下的样式



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-3 17:39:12
8#
安心海叶 发表于 2016-11-3 15:57
谢谢回复~
但是这么添加后,是以下的样式

这是微软的ComboBox的默认样式。
如果你是期望可编辑的样式,你就把ComboBox的IsEditable属性设置为true。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-4 15:57:57
9#
本帖最后由 安心海叶 于 2016-11-4 16:00 编辑
Alice 发表于 2016-11-3 17:39
这是微软的ComboBox的默认样式。
如果你是期望可编辑的样式,你就把ComboBox的IsEditable属性设置为true ...

谢谢你的回复~

因为C1DataGrid的ColumnHeader全为Combox,所以我重新定义了ColumnHeaderStyle,如下:

                <c1:C1DataGrid.ColumnHeaderStyle>
                    <Style TargetType="c1ataGridColumnHeaderPresenter">
                        <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 = "araName"
                                                  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中能实现吗?
如下:
<c1ataGridTextColumn Binding="{Binding Time}"/>
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-4 18:05:43
10#
安心海叶 发表于 2016-11-4 15:57
谢谢你的回复~

因为C1DataGrid的ColumnHeader全为Combox,所以我重新定义了ColumnHeaderStyle,如下: ...

ComboBox这个是微软的控件,它本身提供了SelectedIndex属性可以设置默认的选择的项目。
我不太理解什么是当前列的SelectIndex?列上没有SelectIndex属性。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部