2012-02-22 43 views
0

我想在WPF ListBox(或ItemsControl)中使用类似GridSplitter的功能。下面的代码不工作,但我证明了想达到的目标:可调整大小的WPF ListBox/ItemsControl项目

<ListBox ItemsSource="{Binding MyCollection}"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 

    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <TextBlock Text="{Binding MyTextProperty}" Margin="0,0,10,0"/> 

       <GridSplitter 
       Width="5" 
       Background="Red" 
       HorizontalAlignment="Right" 
       ResizeBehavior="CurrentAndNext"/> 

      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    </ListBox> 

有没有人对如何实现这一点的想法?

+0

什么部分“不起作用”? – 2012-02-22 15:23:45

+1

GridSplitter将调整网格中的行/列的大小。你的代码有一个网格,每个列表框项目有一行和一列。分路器不会做任何事情。 – Phil 2012-02-22 15:39:39

+0

@jberger:分网器 – eriksmith200 2012-02-22 20:41:18

回答

1

为什么不使用ListView GridView? GridView支持调整列的大小。

+0

嗯,也许这可以工作,我不得不隐藏列和启用调整单元格大小,或者可能只显示列。但是这些单元格必须使用源集合中的多个项目来创建,所以我不确定这将在绑定到一个集合时起作用 – eriksmith200 2012-02-22 20:57:44

+0

ListView和ListBox都是中继器控件。根本区别是什么? – Paparazzi 2012-02-23 13:18:42