2012-06-28 92 views
1

我讀過其他類似題目的問題,我認爲這是一個不同的問題。WPF DataTrigger「無法找到觸發目標」

我有一個數據綁定組合框。每個項目具有「狀態」和「名稱」,並且顯示文本是通過使用TextBlock和2 Run的串聯。如果是「NotComplete」,我想突出顯示紅色的「狀態」部分。這是我的XAML:

<ComboBox ItemsSource="{Binding Results}"> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <DataTemplate.Triggers> 
       <DataTrigger Binding="{Binding Status}" Value="NotComplete"> 
        <Setter TargetName="txtStatus" Property="Foreground" Value="Red" /> 
       </DataTrigger> 
      </DataTemplate.Triggers> 
      <TextBlock> 
       <Run Text="{Binding Status}" Name="txtStatus"/> 
       <Run Text="{Binding Name" /> 
      </TextBlock> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

我有一個生成錯誤說

無法找到觸發目標 'txtStatus'。

我嘗試了其他一些東西(例如使用x:Name而不是Name),但得到了相同的錯誤。我在正確的方向嗎?我怎樣才能解決這個問題?

+0

你試過x:Name? – dowhilefor

+0

@dowhilefor:應該提到我做了同樣的錯誤。 –

回答

7

必須首先聲明觸發目標。改變順序,它會起作用。

<DataTemplate> 
    <TextBlock> 
     <Run Text="{Binding Status}" Name="txtStatus" /> 
     <Run Text="{Binding Name}" /> 
    </TextBlock> 
    <DataTemplate.Triggers> 
     <DataTrigger Binding="{Binding Status}" Value="NotComplete"> 
      <Setter TargetName="txtStatus" Property="Foreground" Value="Red" /> 
     </DataTrigger> 
    </DataTemplate.Triggers> 
</DataTemplate> 
+0

我希望我已經嘗試過...謝謝! –