题
我有一个绑定到对象集合的项目控件。该对象分别在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;
不隶属于 StackOverflow