私のdatagrid列がセル/ celleditテンプレートを共有したい。wpftoolkit DataGridTemplateColumnテンプレートバインディング
私は解決策を持っています(WPF DataGridTemplateColumn shared template?のおかげで)。今私が気に入っているのは、すべてのノードネストを避けることで可読性を向上させることです。
私の現在のビューは以下のようになります。
<wpftk:DataGrid ItemsSource="{Binding Tests}" AutoGenerateColumns="False">
<wpftk:DataGrid.Resources>
<DataTemplate x:Key="CustomCellTemplate">
<TextBlock Text="{TemplateBinding Content}"/>
</DataTemplate>
<DataTemplate x:Key="CustomCellEditingTemplate">
<TextBox Text="{TemplateBinding Content}"></TextBox>
</DataTemplate>
</wpftk:DataGrid.Resources>
<wpftk:DataGrid.Columns>
<wpftk:DataGridTemplateColumn Header="Start Date">
<wpftk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentPresenter ContentTemplate="{StaticResource CustomCellTemplate}" Content="{Binding StartDate}"/>
</DataTemplate>
</wpftk:DataGridTemplateColumn.CellTemplate>
<wpftk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ContentPresenter ContentTemplate="{StaticResource CustomCellEditingTemplate}" Content="{Binding StartDate}"/>
</DataTemplate>
</wpftk:DataGridTemplateColumn.CellEditingTemplate>
</wpftk:DataGridTemplateColumn>
<!--and again the whole block above for each columns...-->
</wpftk:DataGrid.Columns>
</wpftk:DataGrid>
私が達成したい何DataGridTemplateColumn
レベルの値を結合して、テンプレートのレベルにそれを伝播することです。誰でもそのことを知っていますか?結合porpertyがDataGridTemplateColumn
の有効なプロパティではありませんが、おそらくのDataContextといくつかの相対的なソースと一緒に遊んで率直にトリックを行うが、可能性が明らかに
<wpftk:DataGrid ItemsSource="{Binding Tests}" AutoGenerateColumns="False">
<wpftk:DataGrid.Resources>
<DataTemplate x:Key="CustomCellTemplate">
<TextBlock Text="{Binding}"/>
</DataTemplate>
<DataTemplate x:Key="CustomCellEditingTemplate">
<TextBox Text="{Binding}"></TextBox>
</DataTemplate>
</wpftk:DataGrid.Resources>
<wpftk:DataGrid.Columns>
<wpftk:DataGridTemplateColumn Header="Start Date" Binding="{Binding StartDate}" CellTemplate="{StaticResource CustomCellTemplate}" CellEditingTemplate="{StaticResource CustomCellEditingTemplate}"/>
<wpftk:DataGridTemplateColumn Header="End Date" Binding="{Binding EndDate}" CellTemplate="{StaticResource CustomCellTemplate}" CellEditingTemplate="{StaticResource CustomCellEditingTemplate}"/>
</wpftk:DataGrid.Columns>
</wpftk:DataGrid>
:私はやってみました何
はそのような何かであります私はそれを実装する方法を見つけることができません。
ない私がしたいことは可能であると私は答えとして
NOTE「あなたがそれを行うことができる方法は、」受け入れることを望んだかどうかわから:テンプレートにTextBlock
/TextBox
は単なるテストのためではありませんあなたは、プロパティ構文を使用してDataTemplates
を指定することによって、XAML
を低減して(実際のテンプレートがはるかに複雑である)DataGridTextColumn
は、トリックを行うことはありません事前に おかげ
私はあなたに従っていますが、私の問題はDataGridTemplateColumnから実際のデータを直接バインドする方法がわからないことです.BindingはDataGridTemplateColumnのプロパティではありません。編集テンプレートと通常のテンプレートをバインドできますが、データをテンプレートにバインドする方法はわかりません。私の推測は、私が望むデータでテンプレートのDataContextを設定することですが、私はそれを行う方法がわかりません – Guillaume
あなたの元の質問によく答えるために編集された答え。 – Dennis
素晴らしい!私が探していたもの – Guillaume