在两列(WPF)中显示itemscontrol中的项目

时间:2009-09-20 07:20:05

标签: .net wpf itemscontrol

我有一个绑定到对象集合的项控件。该对象有两个属性(名称,值),分别显示在文本块和文本框中。列表很长,我想在两列中显示它。所以我的问题是,有什么方法可以让Itemscontrol在两列中显示它的项目吗?

P.S:该集合在运行时填充,我不知道有多少项目需要展示!

2 个答案:

答案 0 :(得分:11)

使用ListBox并指定一个DataTemplate,在其中放置TextBlock和TextBox。使用绑定来填充它们。有关更多示例,请参阅http://msdn.microsoft.com/en-us/library/ms742521.aspx

<ListBox x:Name="TheListBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>

                <TextBlock Text="{Binding Name}" />
                <TextBox Grid.Column="1" Text="{Binding Value }" />
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

TheListBox.ItemsSource = CollectionOfObjects;

答案 1 :(得分:6)

我倾向于将项目放在WrapPanel中,然后将面板的宽度设置为项目宽度的2倍。这给了我很好的列,任意数量的元素。如果您的项目宽度不同,我将每个项目放在自己的Grid或StackPanel中,固定宽度。