我已经阅读了其他类似标题的问题,我认为这是一个不同的问题。
我有一个数据绑定的组合框。每个项目都有一个"状态"和#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
),但却遇到了同样的错误。我正朝着正确的方向前进吗?我该如何解决这个问题?
答案 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>