I持っインジケータ行のためにいくつかのテンプレートを設定し、派生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に固定されています。行の幅は第2部分に定義された列によって計算される。私は、同様の背後にあるコードを介して、ビューの表示幅にアクセスすることができます知っているが、私は、彼らがXAMLでリソースに住んでいるので
var view = ((TableView)this.View);
view.IndicatorWidth = IndicatorColumnRowNumber.Width /* can not be found */ + ...
の背後にあるコードでテンプレートコントロールにアクセスすることはできませんよ。私はこれも起こるはずではないことを理解しています。これを実装する最良の方法は何ですか?おそらくコードの定義の中に抽出を抽出するでしょうか?
編集:ここでは は、テーブルの絵は、私はあなたが達成しようとしているものを100%わからないが、あなたはあなたの後ろにコード内であなたのリソースにアクセスしたい場合はでき
ありがとうございます。私はXAMLでそれをしたいと思います。私はそれを言い換えようとしています:合計インジケータ列は、最初のリソースエントリに設定されています。私はそれがすべての列(現在435ですが、それを "auto"に設定したい)と同じにします。 – derape
エレメント "IndicatorGrid"とそのActualWidthプロパティーにバインドできます: '{Binding Path = ActualWidth、ElementName = IndicatorGrid} ' – avamir10
しかし、私はそれを逆にしたい:グリッドは必要なサイズを定義し、インジケータの幅をそれに応じて採用する必要があります – derape