2012-06-28 57 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

我希望我已经尝试过...谢谢! –