DataGridColumn - ユーティリティで独自のカスタム接続プロパティを作成しました:ADPs.IsCellSelectedは、列にセルが選択されているかどうかを示します。私は行のために似て、それは正常に動作します。 今、このプロパティを使用して列全体を変更したいとします。CellTemplate内のDataTriggerからDataGridColumnプロパティにアクセスする
<DataGridTemplateColumn x:Name="MyColumn" Header="Test">
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource BaseCell}">
<Setter Property="Background" Value="Black"/>
</Style>
</DataGridTemplateColumn.CellStyle>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:Uid="DataTemplate_3">
<TextBlock x:Name="trg" Text="some text" />
<DataTemplate.Triggers>
<Trigger SourceName="MyColumn" Property="utilities:ADPs.IsCellSelectedColumn" Value="True">
<Setter TargetName="trg" Property="Background" Value="Red"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
しかし、VSは "MyColumnという名前は認識されません"というエラーを表示します。どのように私は私の新しい添付DataGridColumnプロパティ "セル"からアクセスすることができますか?
EDIT:ので、あなたがのElementNameを使用するDataTemplate外の要素を参照することはできません。また、DataGridTemplateColumnがUIElementのではなく、VisualTreeではないが、 は「DataTemplateをは独自のNameScopeのがあります。 は、おそらく私はので、私はつもり何可能SNOトンをTIしたがって、DataGridTemplateColumnはDataTemplateで定義された要素の親ではありません。DataGridTemplateColumnは列を定義するためだけに使用され、DataGridは定義に基づいてヘッダー、行、およびセルを生成しますが、DataGridColumnsはレンダーされません。 link