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

5

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

我有一个数据绑定的下拉框。每个项目都有一个“状态”和一个“名称”,显示文本是通过使用带有2个RunTextBlock连接两者而成的。如果“状态”为“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),但是仍然出现相同的错误。我是否朝着正确的方向努力?如何修复这个问题?


@dowhilefor:我应该提到了,我尝试过了,但是还是出现了同样的错误。 - NS.X.
1个回答

13

触发器的目标必须先声明。改变顺序,它就会起作用。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接