我正在制作一个复选框列表,第一个复选框为“SelectAll”。 SelectAll复选框将选中或取消选中列表中的所有复选框。但是我的检查列表绑定到数据源。现在我想把所有复选框包括selectAll复选框放在同一个包装盒中,以便它们可以在面板的末尾包装在一起。
<ContentControl Name="FilterContent">
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<CheckBox Name="SelectedAll" MinWidth="100" Margin="2"
VerticalAlignment="Center" HorizontalAlignment="Left"
IsChecked="{Binding IsSelectAll, Mode=TwoWay}"
Content="{Binding Path=SelectAllText}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cmd:EventToCommand Command="{Binding Path=OnClickCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
<ItemsControl ItemsSource="{Binding StandardItems}"
Margin="2,5,2,-1"
BorderBrush="{x:Null}"
Background="Transparent"
Grid.ColumnSpan="2"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
ScrollViewer.HorizontalScrollBarVisibility="Hidden">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Name="ItemsPanel" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Name="ItemCheckBox"
MinWidth="100" Margin="2"
VerticalAlignment="Center" HorizontalAlignment="Left"
IsChecked="{Binding Path=IsChecked, Mode=TwoWay}"
Content="{Binding Path=Label}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</WrapPanel>
</ContentControl>
这段代码不允许我这样做,结果UI只将项目控件中的项目包含在第二行,但不考虑同一个wrappanel中的所有复选框。我需要帮助将“SelectAll”复选框添加到itemscontrol使用的wrappanel。
谢谢!
答案 0 :(得分:0)
加载控件时,我会在StandardItems列表中添加一个空的StandardItem,这意味着“全选”。当我处理复选框点击事件时,我检查该项目是否为空项目,并将其用作“全选”的调用