Wpf 如何将文本块可见性设置为默认折叠状态…并根据条件进行切换?

Wpf 如何将文本块可见性设置为默认折叠状态…并根据条件进行切换?,wpf,visibility,textblock,multitrigger,multidatatrigger,Wpf,Visibility,Textblock,Multitrigger,Multidatatrigger,我有一个TextBlock——默认情况下是折叠的,只有当它满足两个条件时才可见 我有下面同样的XAML。但它并没有像预期的那样发挥作用 任何帮助都将不胜感激。谢谢 <TextBlock Text="{Binding Path=CC.Name}" VerticalAlignment="Center" FontWeight="Bold" Margin="0,0,10,0" Visibility="Collapsed"> <TextBlock.Style>

我有一个
TextBlock
——默认情况下是折叠的,只有当它满足两个条件时才可见

我有下面同样的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>

哦,它按预期工作,但这可能不是您所期望的。关键是。“局部值”(在元素标记中设置)覆盖样式尝试执行的所有操作。您需要将这些属性提取到优先级低于样式触发器的样式设置器。

哦,它按预期工作,但这可能不是您所期望的。关键是。“局部值”(在元素标记中设置)覆盖样式尝试执行的所有操作。您需要将此类属性提取到优先级低于样式触发器的样式设置器。

您必须使用此设置器:

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

...

您必须使用此设置器:

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

...

您是否希望在条件之间应用OR和。你只会得到和。若您想要和或只是添加另一个公共属性,则这两个属性中的或就是


表示当绑定数据满足一组条件时应用属性值或执行操作的触发器

您是否希望在两个条件之间应用OR和。你只会得到和。若您想要和或只是添加另一个公共属性,则这两个属性中的或就是


表示当绑定数据满足一组条件时应用属性值或执行操作的触发器

我知道优先规则但不知道如何克服它谢谢阿洛蒂知道优先规则但不知道如何克服它谢谢alot@Relativity:(那是因为他在提交答案的五分钟内默默地消除了他的错误,顺便说一句,这是在我的错误之后)我不能很快用英语回答问题。。。这就是为什么我粘贴了这段代码,并在稍后键入了一些单词……犯错是人的行为……我看到了那个错误——你的意思是->“Visibility=”Collapsed“……是的。但我从中找到了解决办法。@Relativity:(那是因为他在提交答案的五分钟内默默地消除了他的错误,顺便说一句,这是在我的错误之后)我不能很快用英语回答问题…这就是为什么我粘贴了这段代码并稍后键入了一些单词…犯错误是人类的…我看到了错误-你的意思是->“Visibility=”collapse“…对。但我找到了解决办法。