4

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

我有一个数据绑定组合框。每个项目都有一个“状态”和一个“名称”,显示文本是通过使用 aTextBlock和 2将两者连接起来Run的。如果它是“未完成”,我想用红色突出显示“状态”部分。这是我的 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),但得到了同样的错误。我在正确的方向吗?我怎样才能解决这个问题?

4

1 回答 1

12

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

<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>
于 2012-06-28T22:33:23.003 回答