2010-09-08 47 views
1

我有一個網格。網格的列是根據用戶的選擇在運行時自動生成的。如何在動態網格中應用DataTemplate?

如果內容是負數,我需要網格中的單元格爲紅色。

我已經創建了一個DataTemplateSelector。如果單元格爲負數,DataTemplateSelector get的正確調用並返回我的模板。

由於我的列是自動生成的,我不能簡單地將正確的字段放在綁定中的模板中。

  <DataTemplate x:Key="MontantNegatifTemplate">      
       <TextBlock Foreground="Red" Text="{Binding}" /> 
      </DataTemplate> 

如果我做了這樣的模板,文本是網格綁定對象的名稱。

如果我做這樣的事情:

  <DataTemplate x:Key="MontantNegatifTemplate">      
       <TextBlock Foreground="Red" /> 
      </DataTemplate> 

細胞是空的,因爲文字塊似乎覆蓋標準的自動生成的細胞。

有沒有辦法讓這項工作?我應該用另一種方法嗎?

回答

0

我終於找到了對我的問題awnser。

我需要使用StyleSelector而不是DataTemplateSelector。

以同樣的方式,我需要在我的網格資源中定義一個Style而不是DataTemplate。

<style:NegativeStyleSelector x:Key="NegativeStyleSelector"> 
        <style:NegativeStyleSelector.NegativeStyle> 
         <Style TargetType="GridViewCell"> 
          <Setter Property="Foreground" Value="Red"/> 
         </Style> 
        </style:NegativeStyleSelector.NegativeStyle> 
       </style:NegativeStyleSelector> 
相關問題