2011-05-29 106 views
0

我正在生成第一个复选框为“SelectAll”的复选框列表。 SelectAll复选框将选中或取消选中列表中的所有复选框。但是,我的检查列表绑定到数据源。现在我想把所有复选框包括在同一个wrappanel中的selectAll复选框,以便它们可以在面板的末尾一起打包。将项目添加到不是绑定的ItemControl项目源

  <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”复选框添加到itemcontrol使用的wrappanel。

谢谢!

回答

0

加载控件时,我会在StandardItems列表中添加一个空的StandardItem,这将意味着“全选”。当我处理复选框单击事件时,我检查该项是否为空项目,并将其用作“全选”的调用

+0

我通过在视图模式中向我的绑定ItemList添加“SelectAll”来解决此问题对于列表中的每个项目,我添加了一个OnCheck/OnUncheck命令。但是对于SelectAll,我在OnCheck/OnUncheck操作中附加了一个不同的命令 – bluecatkaka 2011-06-03 00:12:15