2011-10-13 26 views
0

在下面的代碼中,我試圖通過檢查PreviousElement是否爲null來將我的集合中的第一個項目的樣式設置爲一個模板,將其餘部分設置爲不同的模板。我認爲我的親屬是不正確的,因爲觸發條件總是如此。路徑應該是什麼?如何在設置ContentPresenter.Style時引用「PreviousData」

<DataTemplate x:Key="RowItemTemplate"> 
     <ContentPresenter Content="{Binding}"> 
      <ContentPresenter.Style> 
       <Style TargetType="{x:Type ContentPresenter}"> 
        <Setter Property="ContentTemplate" Value="{StaticResource ComparisonTemplate}"/> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}"> 
          <Setter Property="ContentTemplate" Value="{StaticResource SourceTemplate}"/> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </ContentPresenter.Style> 
     </ContentPresenter> 
    </DataTemplate> 

回答

0

我創建具有一個bool以確定哪個模板的特定元素應該使用的接口:

<DataTemplate x:Key="RowItemTemplate"> 
     <ContentPresenter Content="{Binding}"> 
      <ContentPresenter.Style> 
       <Style TargetType="{x:Type ContentPresenter}"> 
        <Setter Property="ContentTemplate" Value="{StaticResource ComparisonTemplate}"/> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding DataItem}" Value="true"> 
          <Setter Property="ContentTemplate" Value="{StaticResource SourceTemplate}"/> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </ContentPresenter.Style> 
     </ContentPresenter> 
    </DataTemplate> 
相關問題