WPF DataTrigger“无法找到触发器目标”

时间:2012-06-28 21:53:25

标签: wpf datatrigger

我已经阅读了其他类似标题的问题,我认为这是一个不同的问题。

我有一个数据绑定的组合框。每个项目都有一个"状态"和#34;名称"并且显示文本是使用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>

我遇到了构建错误

  

找不到触发器目标&#39; txtStatus&#39;。

我尝试了其他一些事情(比如使用x:Name而不是Name),但却遇到了同样的错误。我正朝着正确的方向前进吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:9)

必须首先声明触发器目标。更改顺序,它将起作用。

<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>