0

-があります。これはデフォルトで折りたたまれておりTextBlock、2つの条件を満たす場合にのみ表示されます。

私は同じために以下のXAMLを持っています。しかし、期待どおりに機能していません。

どんな助けでもいただければ幸いです。ありがとう

<TextBlock Text="{Binding Path=CC.Name}" VerticalAlignment="Center"  FontWeight="Bold" Margin="0,0,10,0"  Visibility="Collapsed">
    <TextBlock.Style>
        <Style>
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>                                
                        <Condition Binding="{Binding Path=IsP}" Value="True" />    
                            <Condition Binding="{Binding Path=IsC}" Value="True" />
                        </MultiDataTrigger.Conditions>

                        <Setter Property="TextBlock.Visibility" Value="Visible"/>

                    </MultiDataTrigger>                           
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
4

3 に答える 3

4

ああ、それ期待通りに機能しています、しかしそれはおそらくあなたが期待したものではありません。重要なのは依存関係プロパティの優先順位です。「ローカル値」(要素タグに設定)は、スタイルが実行しようとするすべてのことをオーバーライドします。このようなプロパティを、スタイルトリガーよりも優先順位が低いスタイルセッターに抽出する必要があります。

于 2011-12-12T20:41:11.290 に答える
2

このセッターを使用する必要があります:

<TextBlock Text="{Binding Path=CC.Name}" VerticalAlignment="Center"  FontWeight="Bold" Margin="0,0,10,0">
    <TextBlock.Style>
        <Style>
           <Setter Property="TextBlock.Visibility" Value="Collapsed"/>
           <Style.Triggers>
               <MultiDataTrigger>
                    ...
               </MultiDataTrigger>                           
           </Style.Triggers>
       </Style>
     </TextBlock.Style>
</TextBlock>
于 2011-12-12T20:41:58.950 に答える
0

条件の間にORまたはANDが適用されることを期待していますか。ANDを取得するだけです。必要に応じて、または別のパブリックプロパティを追加するだけで、2つのORになります。

バインドされたデータが一連の条件を満たしたときに、プロパティ値を適用するか、アクションを実行するトリガーを表します。 http://msdn.microsoft.com/en-us/library/system.windows.multidatatrigger.aspx

于 2011-12-12T20:45:19.070 に答える