MultiDataTrigger 使堆栈面板子项可见并折叠
MultiDataTrigger make stack panel children visible and colappsed
我有几个属性,如果这些值是真的,
如果为真,我希望堆栈面板子项可见。
如果为假则折叠。
据我所知,我需要使用 MultiDataTriigers 和条件。
但是我不确定在哪里放置 setter proppery 到 Collapsed。
正在附加 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>
注意第二行和可见性下面的行 setter。
您可以使用 MultiBinding 绑定到多个属性,并且仅当转换器 class 实现 IMultiValueConverter
接口 [=15= 时才将 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>
我有几个属性,如果这些值是真的,
如果为真,我希望堆栈面板子项可见。 如果为假则折叠。
据我所知,我需要使用 MultiDataTriigers 和条件。
但是我不确定在哪里放置 setter proppery 到 Collapsed。
正在附加 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>
注意第二行和可见性下面的行 setter。
您可以使用 MultiBinding 绑定到多个属性,并且仅当转换器 class 实现 IMultiValueConverter
接口 [=15= 时才将 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>