【发布时间】:2017-08-01 06:46:31
【问题描述】:
我有一个派生的 devexpress 网格控件,它为指示器行设置了一些模板:
<dxg:GridControl.Resources>
<sys:Double x:Key="{dxgt:TableViewThemeKey ResourceKey=IndicatorWidth, ThemeName=Office2016White}">300</sys:Double>
<DataTemplate x:Key="{dxgt:RowIndicatorThemeKey ResourceKey=RowTemplate, ThemeName=Office2016White}">
<Grid Name="IndicatorGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="35" Name="IndicatorColumnRowNumber" SharedSizeGroup="RowNumberGroup" />
<ColumnDefinition Width="200" Name="IndicatorColumnDescription" SharedSizeGroup="DescriptionGroup" />
<ColumnDefinition Width="200" Name="IndicatorColumnSource" SharedSizeGroup="SourceGroup" />
</Grid.ColumnDefinitions>
//...
</DataTemplate>
</dxg:GridControl.Resources>
现在指标列的宽度固定为 300。现在我希望通过第二部分中定义的列来计算行的宽度。我知道我也可以通过后面的代码访问视图的指示器宽度,但我无法访问后面代码中的模板控件
var view = ((TableView)this.View);
view.IndicatorWidth = IndicatorColumnRowNumber.Width /* can not be found */ + ...
因为它们存在于 xaml 中的资源中。据我了解,这也不应该发生。实现这一点的最佳方法是什么?也许提取后面代码中的定义?
编辑: 这是一张桌子的照片
【问题讨论】:
标签: c# wpf devexpress resourcedictionary gridcontrol