找回密码
 立即注册

QQ登录

只需一步,快速开始

安心海叶
中级会员   /  发表于:2016-11-7 09:55:18
11#
Alice 发表于 2016-11-4 18:05
ComboBox这个是微软的控件,它本身提供了SelectedIndex属性可以设置默认的选择的项目。
我不太理解什么 ...

列是没有SelectIndex属性。

但是,我重新定义了ColumnHeader的模板,每一列的Header由Combox和TextBlock组成。所以,对于DataGrid的一列,我需要初始化时,设置Combox选择的Index,该如何设置?

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-7 10:21:35
12#
安心海叶 发表于 2016-11-7 09:55
列是没有SelectIndex属性。

但是,我重新定义了ColumnHeader的模板,每一列的Header由Combox和TextBlo ...

很抱歉我理解不了你的意思,你发个Demo过来我帮你看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-8 11:36:53
13#
Alice 发表于 2016-11-4 18:05
ComboBox这个是微软的控件,它本身提供了SelectedIndex属性可以设置默认的选择的项目。
我不太理解什么 ...

您好!

存在的问题是:

1、DataGrid每一列,如何设置Combox选中的Index?

2、当Combox的索引改变时,如何更新DataGrid当前列?

3、自定义的Combox该如何设置为DataGrid的内嵌的样式,就是点击Header的时候,才出现Combox的ToggleButton?




本帖子中包含更多资源

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

x
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-8 16:54:41
14#
Alice 发表于 2016-11-7 10:21
很抱歉我理解不了你的意思,你发个Demo过来我帮你看看。

请问有测试结果吗?
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-8 16:54:43
15#
Alice 发表于 2016-11-7 10:21
很抱歉我理解不了你的意思,你发个Demo过来我帮你看看。

请问有测试结果吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-8 17:54:45
16#
安心海叶 发表于 2016-11-8 11:36
您好!

存在的问题是:

谢谢您提供的Demo。问题收到了,正在做测试,测试后给您回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-9 09:55:38
17#
安心海叶 发表于 2016-11-8 11:36
您好!

存在的问题是:

从你的描述来看,你说的都是逻辑上的问题。
测试了你的Deom,我来梳理下你的问题:
在C1DataGrid的ColumnHeader上放了ComboBox控件。
在运行时选择ComboBox之后,要根据相应的SelectedIndex,更改对应列的值?
这里我疑惑:
1你的三列分别绑定Time/VO2/VCO2,ComboBox的下拉框里是Time/VO2/VCO2。
你选择了后,你期望改变对应列的的每个单元格的值变成什么?

在ComboBox_SelectionChanged事件里,就可以拿到SelectedIndex的值。通常数据绑定的情况下,单元格的值是由数据源决定的,并且影响数据源。看不出ComboBox和数据源的值有什么关系。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-9 10:31:40
18#
Alice 发表于 2016-11-9 09:55
从你的描述来看,你说的都是逻辑上的问题。
测试了你的Deom,我来梳理下你的问题:
在C1DataGrid的Colu ...

谢谢你的回复~

1、三列分别绑定Time/VO2/VCO2,ComboBox的下拉框里是Time/VO2/VCO2。
你选择了后,你期望改变对应列的每个单元格的值变成相应属性的值。例如,改变为VO2,那么当前列的值就是500-100的值;

2、ComboBox_SelectionChanged事件是可以拿到SelectedIndex,但是不知道哪个Combox属于DattGrid的哪一列?
回复 使用道具 举报
安心海叶
中级会员   /  发表于:2016-11-9 10:31:48
19#
Alice 发表于 2016-11-9 09:55
从你的描述来看,你说的都是逻辑上的问题。
测试了你的Deom,我来梳理下你的问题:
在C1DataGrid的Colu ...

谢谢你的回复~

1、三列分别绑定Time/VO2/VCO2,ComboBox的下拉框里是Time/VO2/VCO2。
你选择了后,你期望改变对应列的每个单元格的值变成相应属性的值。例如,改变为VO2,那么当前列的值就是500-100的值;

2、ComboBox_SelectionChanged事件是可以拿到SelectedIndex,但是不知道哪个Combox属于DattGrid的哪一列?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-9 14:37:30
20#
安心海叶 发表于 2016-11-7 09:55
列是没有SelectIndex属性。

但是,我重新定义了ColumnHeader的模板,每一列的Header由Combox和TextBlo ...

经过电话沟通后,重新对问题进行了验证。
Header上放置ComboBox,如果按照我之前提示的方式添加到列上,那么在ComboBox的SelectionChanged的事件里,就可以通过如下代码获取到:
  1. int  columnIndex = ((C1.WPF.DataGrid.DataGridColumnHeaderPresenter)(((System.Windows.Controls.ComboBox)(sender)).Parent)).Column.Index;
复制代码

但是因为是所有列统一用的Style设置,所以很难分辨是哪列的ComboBox触发了。

另一个问题,通常是在VisutalTree上查找元素。WPF的visualtreehelper.getchild方法可以获取对象的子级对象。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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