Wpf 设置组样式时,通过列表框样式数据triigers设置ItemsPanel
我有一个ItemsControl,我已经设置了GroupStyleWpf 设置组样式时,通过列表框样式数据triigers设置ItemsPanel,wpf,wpf-controls,.net-4.5,Wpf,Wpf Controls,.net 4.5,我有一个ItemsControl,我已经设置了GroupStyle <ListBox.GroupStyle> <GroupStyle> <GroupStyle.Panel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal" IsItemsHost="True" /> </ItemsPanelTemplate>
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" IsItemsHost="True" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</ListBox.GroupStyle>
此样式将水平排列所有组。根据某些条件,我需要在组内安排项目。例如,如果满足某些条件,则每个组中项目的面板将是WrapPanel,否则将是Canvas
如果没有GroupStyle集,我可以这样做:
<ListBox.Style>
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding SomeCondition}" Value="True">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" IsItemsHost="True" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
有人能告诉我如何将两者结合起来吗?@N.J MultiDataTrigger会带来什么好处?只有一个条件,“基于某些条件”-这个条件到底是什么?你能详细说明一下你想要达到的目标吗?对不起,我没有读这篇文章Properly@MikeEason条件是承载列表框的控件的状态。就这个问题而言,没有必要也包括这项管制,这只会使事情变得更复杂。如果您想在某些场景中测试它,可以将它绑定到togglebutton的IsChecked。选中“插入”按钮时,面板应为画布,否则为堆叠面板。