2012-03-15 128 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> 

它看起來像默認文本框的樣式覆蓋了datagrid的樣式;有沒有一種方法可以使用datagrid風格?我當然可以將文本框設置爲模仿數據網格,但是如果我想添加其他控件,我也必須爲每個控件添加其他控件。如果我沿着這條路線走下去,我將如何根據單元模板內datagridrow的屬性更改樣式? - 例如IsSelected。

+0

我有同樣的問題。我希望有人回答這個問題:) – 2013-07-18 08:26:32

回答

0

請改變你的XAML到以下內容添加到您的文本框的定義:

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

這將使文本框繼承你的DataGrid底色財產。

好運