4

同様のタイトルの他の質問を読みましたが、これは別の質問だと思います。

データバインドされたコンボボックスがあります。各項目には「ステータス」と「名前」があり、表示テキストは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>

というビルドエラーが発生しました

トリガー ターゲット '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 に答える