2010-11-09 37 views
12

我有一个列表框,我使用ListBox.ItemsPanel - WrapPanel。WPF列表框包装

<ListBox ItemsSource="{Binding Path=Applets}" Margin="10,92,10,10" ScrollViewer.HorizontalScrollBarVisibility="Disabled" > 

     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 

       <WrapPanel Orientation="Vertical" IsItemsHost="True"> 

       </WrapPanel> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 



     <ListBox.ItemTemplate>... 

我想有wrappanel有一个行为,使得该项目填补了向右的宽度更宽,并在需要时由窗口窄包。我玩过它,但正确的组合避开了我。有没有人有建议?

我的下一个目标是能够对项目进行重新排序/排序并进行渲染更新。

TIA

回答

17

我想有wrappanel有一个行为,使得该项目填补了向右的宽度更宽,并在需要时由窗口窄包。我玩过它,但正确的组合避开了我。有没有人有建议?

你的代码几乎是正确的,只是改变OrientationHorizontal,它应该工作你描述

我的下一个目标将能够重新排序/项目进行排序和有渲染更新。

您不必为此做任何特殊的事情,这是ListBox的正常行为。只需更改排序顺序(使用ICollectionView.SortDescriptions),界面将反映更改

+0

哦,是的 - 它的工作原理。非常感谢。总的来说,我必须说...这是最有用的网站之一。谢谢大家。 – Jeff 2010-11-09 23:27:05

0
   <ListBox Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
       <ListBoxItem Name="lbiTmp3_1"><CheckBox> 
         <TextBlock TextWrapping="Wrap"> 
         lkjfd gmlkdsfmlk gmdsgf kds lkjglfdjmlkg jfdsg dsgf lkhfdgs lkjds fg 
        </TextBlock></CheckBox> 
       </ListBoxItem> 
       <ListBoxItem Name="lbiTmp3_2">C0ucou</ListBoxItem> 
       <ListBoxItem Name="lbiTmp3_3">C0ucou</ListBoxItem> 
      </ListBox>