繁体   English   中英

MultiDataTrigger不使用绑定路径条件

[英]MultiDataTrigger not working with binding path condition

我已经实现了一个WPF用户控件,我想在这里实现的是在主网格上的鼠标悬停,一些堆栈面板应该隐藏。 我需要有多个触发条件。 尽管到处寻找我无法找到我做错了什么。 UserControl资源如下

<UserControl.Resources>
    <Style x:Key="StackViewStyle" TargetType="{x:Type StackPanel}">
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=Grid},Path=IsMouseOver}" Value="True" />
                    <Condition Binding="{Binding Path=FileState, RelativeSource={RelativeSource Self}}" Value="Uploading" />
                </MultiDataTrigger.Conditions>
                <Setter Property="Visibility" Value="Collapsed"/>
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

数据绑定工作正常,因为当我输入测试标签来检查其值时,它是“上传”。 如果我删除FileState条件它开始工作。 我正在使用它

<StackPanel Name="StackViewCount" Style="{StaticResource StackViewStyle}">
    ...
</StackPanel>

在查看输出窗口时,我发现了这个错误

BindingExpression路径错误:'object'''StackPanel'(Name ='StackViewCount')'上找不到'FileState'属性。 BindingExpression:路径= FileState; DataItem ='StackPanel'(Name ='StackViewCount'); target元素是'StackPanel'(Name ='StackViewCount'); target属性是'NoTarget'(类型'对象')

那么我怎么能告诉绑定在UserControl中查找FileState而不是stackpanel

现在当我改变条件

<Condition Binding="{Binding Path=FileState}" Value="Uploading" />

我没有看到任何错误,但它仍然无法正常工作。

由于FileStateUserControl属性,并且它是StackPanel祖先,因此您必须bind to ancestor如:

<Condition Binding="{Binding Path=FileState, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="Uploading" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM