WPF 数据触发器 "cannot find trigger target"

标签 wpf datatrigger

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

我有一个数据绑定(bind)组合框。每个项目都有一个“状态”和一个“名称”,显示文本是使用 TextBlock 连接的两者。与 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>

我得到一个构建错误说

Cannot find the Trigger target 'txtStatus'.



我尝试了其他一些方法(例如使用 x:Name 而不是 Name )但得到了同样的错误。我在正确的方向吗?我怎样才能解决这个问题?

最佳答案

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

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

关于WPF 数据触发器 "cannot find trigger target",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11253470/

相关文章:

c# - 使用 DataTriggers 在运行时更改 DataTemplate

wpf - 检查绑定(bind)属性是否存在

WPF:隐藏对象会导致消失前短暂闪烁

c# - 在 XAML 中使用枚举值

wpf - 如何将 DataTrigger 绑定(bind)到单独的 ListBox ScrollViewer 的 ComputedVerticalScrollBarVisibility 属性?

wpf - 在调整其列大小时更改 DataGrid 宽度

wpf - 为什么 WPF 控件没有 Tag 属性?

c# - WPF 以编程方式使用 DataTrigger 添加 DataGridTextColumn

.net - 适应屏幕和字体设置的 WPF 应用程序(或者,我如何将 DLU 与 WPF 中的单元相关联?)

c# - 将 LineGeometry 与 EllipseGeometry 组合(在代码中,而不是 XAML)