我有一个绑定到对象集合的项目控件。该对象分别在TextBlock和TextBox中显示两个属性(名称,值)。列表很长,我想在两列中显示。因此,我的问题是,有什么办法可以让ItemScontrol以两列显示其项目?

PS:该系列在运行时填充,我不知道我必须显示多少个项目!

有帮助吗?

解决方案

我倾向于将这些物品放入环形上,然后将面板的宽度设置为2倍的项目宽度。这给了我不错的列,并具有任意数量的元素。如果您的物品宽度有所不同,我将每个物品放在其自己的网格或固定宽度的stackpanel中。

其他提示

使用列表框并指定数据标准,在其中同时将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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top