Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MultiDataTrigger使堆栈面板子项可见并协同应用_C#_Wpf_Setter_Stackpanel_Multidatatrigger - Fatal编程技术网

C# MultiDataTrigger使堆栈面板子项可见并协同应用

C# MultiDataTrigger使堆栈面板子项可见并协同应用,c#,wpf,setter,stackpanel,multidatatrigger,C#,Wpf,Setter,Stackpanel,Multidatatrigger,我有几个属性,如果这些值是真的 如果为true,我希望堆栈面板子级可见。 如果为假,则崩溃 据我所知,我需要使用多数据触发器和条件 但是我不知道该把二传手普罗佩里放在哪里 ataching ma XAML代码: <Style x:Key="ShowHideStyle" TargetType="StackPanel" > <Style.Triggers> <MultiDataTrigger> <

我有几个属性,如果这些值是真的

如果为true,我希望堆栈面板子级可见。 如果为假,则崩溃

据我所知,我需要使用多数据触发器和条件

但是我不知道该把二传手普罗佩里放在哪里

ataching ma XAML代码:

<Style x:Key="ShowHideStyle" TargetType="StackPanel" >
        <Style.Triggers>
            <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                    <Condition Value="True">
                        <Condition.Binding>
                            <MultiBinding Converter="{StaticResource V_converter }">
                                <Binding Path="Type"></Binding>
                                <Binding Path="NodeID"></Binding>
                                <Binding Path="TLV"></Binding>
                            </MultiBinding>
                        </Condition.Binding>
                    </Condition>
                </MultiDataTrigger.Conditions>

                <MultiDataTrigger.Setters>
                    <Setter Property="Visibility" Value="Visible" />
                </MultiDataTrigger.Setters>                    
               </MultiDataTrigger>
        </Style.Triggers>
    </Style>

下面的工作是否默认为崩溃? 我的WPF有点生锈,但如下所示:

<Style x:Key="ShowHideStyle" TargetType="StackPanel" >
    <Style.Setters>
        <Setter Property="Visibility" Value="Collapsed" />
    </Style.Setters>
    <Style.Triggers>
        <MultiDataTrigger>
        <MultiDataTrigger.Conditions>
                <Condition Value="True">
                    <Condition.Binding>
                        <MultiBinding Converter="{StaticResource V_converter }">
                            <Binding Path="Type"></Binding>
                            <Binding Path="NodeID"></Binding>
                            <Binding Path="TLV"></Binding>
                        </MultiBinding>
                    </Condition.Binding>
                </Condition>
            </MultiDataTrigger.Conditions>

            <MultiDataTrigger.Setters>
                <Setter Property="Visibility" Value="Visible" />
            </MultiDataTrigger.Setters>                    
           </MultiDataTrigger>
    </Style.Triggers>
</Style>

注意第二行和可见性设置器下方的行

只有在实现IMultiValueConverter接口的转换器类返回true时,才能使用多重绑定绑定到多个属性,并将StackPanel的可见性属性设置为可见:

<Style x:Key="ShowHideStyle" TargetType="StackPanel">
    <!-- default Visibility: -->
    <Setter Property="Visibility" Value="Collapsed" />
    <Style.Triggers>
        <DataTrigger Value="True">
            <DataTrigger.Binding>
                <MultiBinding Converter="{StaticResource V_converter}">
                    <Binding Path="Type" />
                    <Binding Path="NodeID" />
                    <Binding Path="TLV" />
                </MultiBinding>
            </DataTrigger.Binding>
            <Setter Property="Visibility" Value="Visible" />
        </DataTrigger>
    </Style.Triggers>
</Style>

当我复制这段代码时,所有的东西都被折叠了。并且不受属性的影响。当我复制这段代码时,所有的东西都被折叠了。并且不受属性的影响。那么您的转换器类是如何实现的?当StackPanel应该可见时,它是否返回true?它返回System.Windows.Visibility.visible更改DataTrigger的值,然后:。或者更好的方法是从转换器返回布尔值true或false。然而,我希望它能做到这一点。就是把所有的孩子都折叠起来,然后把他们藏起来。看起来你找到了答案,但这里有一句话:如果你的V_转换器返回可见性,不要触发任何东西,就去吧。