2012-03-15 18 views
4

WPFデータグリッドにカスタムの列型を作成したいと考えています。その一部はユーザー入力用のテキストボックスになります。残念ながら、データグリッド自体のルック・アンド・フィールを継承しているようには見えません。交互の色を表示したり、行を選択または編集したりしても問題のセルは同じように強調表示されません。カスタムCellTemplateでWPF DataGridスタイルを継承する

  <DataGridTemplateColumn Header="Name" > 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate > 
         <TextBox Text="{Binding DisplayName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" BorderThickness="0" />       
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 

デフォルトのテキストボックスのスタイルは、データグリッドのスタイルをオーバーライドしているようです。ちょうどdatagridsスタイルを使用する方法はありますか?もちろん、データグリッドを模倣するようにテキストボックスをスタイルすることもできますが、他のコントロールを追加したい場合は、それぞれのコントロールを行う必要があります。私がそのルートを辿ると、celltemplate内からデータグリッドのプロパティに基づいてスタイルを変更しますか?たとえば、IsSelectedです。

+0

私は誰かがこの質問に答えることを願っています:) –

答えて

0

あなたのテキストボックスの定義に以下を追加するために、あなたのXAMLを変更してください:これは、テキストボックスには、あなたのデータグリッドbackroundのプロパティを継承行います

BorderThickness="0"  
Background="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=Background}" 

幸運

関連する問題