2009-10-28 39 views

回答

12

好的,在应用Grid.IsSharedSizeScope="true"附属属性时使用ItemsControl。接下来,为您的ItemTemplate中,您使用<Grid>就像你通常会现在除非你添加ColumnDefinition是你的SharedSizeGroup属性设置为对每列中唯一的名称。因此,例如:

<ItemsControl Grid.IsSharedSizeScope="true"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition SharedSizeGroup="MyFirstColumn" /> 
        <ColumnDefinition SharedSizeGroup="MySecondColumn" /> 
       </Grid.ColumnDefinitions> 
       <TextBlock Grid.Column="0" Text="{Binding MyFirstProperty}"/ > 
       <TextBlock Grid.Column="1" Text="{Binding MySecondProperty}"/ > 
      </Grid> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

更多关于IsSharedSizeScope和SharedSizeGroup,check out this section of the SDK。应该注意RowDefinitions也有一个SharedSizeGroup,所以你也可以做水平布局。

+0

是啊......看起来像我要去的路线。 – Rich 2009-10-28 21:16:52

+0

非常有帮助。在相同的情况下(我需要设置'')我也想第二列填充剩余空间。它的工作,如果我没有设置'SharedSizeGroup'的第2列:'''''' – ASh 2016-01-18 09:27:31

1

也许我误解了你的问题,但是这不正是GridView的做法吗?

+0

谢谢...甚至不知道存在 – Rich 2009-10-28 20:48:49

+0

其实,这并不是我所期待的。我不想要所有额外的花式“数据网格”格式。我不想要列标题,排序功能,默认填充和背景等。我想重复在网格中放置的集合中的项目,就像我通常在ItemsControl中执行的那样...无非就是。知道什么? – Rich 2009-10-28 20:57:10

+0

好的...只是为了确保我明白:你想要水平放置物品而不是垂直放置物品? – 2009-10-28 21:15:32