安心海叶
发表于 2016-11-7 09:55:18
Alice 发表于 2016-11-4 18:05
ComboBox这个是微软的控件,它本身提供了SelectedIndex属性可以设置默认的选择的项目。
我不太理解什么 ...
列是没有SelectIndex属性。
但是,我重新定义了ColumnHeader的模板,每一列的Header由Combox和TextBlock组成。所以,对于DataGrid的一列,我需要初始化时,设置Combox选择的Index,该如何设置?
Alice
发表于 2016-11-7 10:21:35
安心海叶 发表于 2016-11-7 09:55
列是没有SelectIndex属性。
但是,我重新定义了ColumnHeader的模板,每一列的Header由Combox和TextBlo ...
很抱歉我理解不了你的意思,你发个Demo过来我帮你看看。
安心海叶
发表于 2016-11-8 11:36:53
Alice 发表于 2016-11-4 18:05
ComboBox这个是微软的控件,它本身提供了SelectedIndex属性可以设置默认的选择的项目。
我不太理解什么 ...
您好!
存在的问题是:
1、DataGrid每一列,如何设置Combox选中的Index?
2、当Combox的索引改变时,如何更新DataGrid当前列?
3、自定义的Combox该如何设置为DataGrid的内嵌的样式,就是点击Header的时候,才出现Combox的ToggleButton?
安心海叶
发表于 2016-11-8 16:54:41
Alice 发表于 2016-11-7 10:21
很抱歉我理解不了你的意思,你发个Demo过来我帮你看看。
请问有测试结果吗?
安心海叶
发表于 2016-11-8 16:54:43
Alice 发表于 2016-11-7 10:21
很抱歉我理解不了你的意思,你发个Demo过来我帮你看看。
请问有测试结果吗?
Alice
发表于 2016-11-8 17:54:45
安心海叶 发表于 2016-11-8 11:36
您好!
存在的问题是:
谢谢您提供的Demo。问题收到了,正在做测试,测试后给您回复。
Alice
发表于 2016-11-9 09:55:38
安心海叶 发表于 2016-11-8 11:36
您好!
存在的问题是:
从你的描述来看,你说的都是逻辑上的问题。
测试了你的Deom,我来梳理下你的问题:
在C1DataGrid的ColumnHeader上放了ComboBox控件。
在运行时选择ComboBox之后,要根据相应的SelectedIndex,更改对应列的值?
这里我疑惑:
1你的三列分别绑定Time/VO2/VCO2,ComboBox的下拉框里是Time/VO2/VCO2。
你选择了后,你期望改变对应列的的每个单元格的值变成什么?
在ComboBox_SelectionChanged事件里,就可以拿到SelectedIndex的值。通常数据绑定的情况下,单元格的值是由数据源决定的,并且影响数据源。看不出ComboBox和数据源的值有什么关系。
安心海叶
发表于 2016-11-9 10:31:40
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
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
安心海叶 发表于 2016-11-7 09:55
列是没有SelectIndex属性。
但是,我重新定义了ColumnHeader的模板,每一列的Header由Combox和TextBlo ...
经过电话沟通后,重新对问题进行了验证。
Header上放置ComboBox,如果按照我之前提示的方式添加到列上,那么在ComboBox的SelectionChanged的事件里,就可以通过如下代码获取到:
intcolumnIndex = ((C1.WPF.DataGrid.DataGridColumnHeaderPresenter)(((System.Windows.Controls.ComboBox)(sender)).Parent)).Column.Index;
但是因为是所有列统一用的Style设置,所以很难分辨是哪列的ComboBox触发了。
另一个问题,通常是在VisutalTree上查找元素。WPF的visualtreehelper.getchild方法可以获取对象的子级对象。