我在网格中有一个ItemsControl。它的工作原理是我可以在单击按钮时生成项目,但如何设置列?标签文本添加在ObservableCollection中。现在显然我最终会在我的数组中为每个文本添加一个标签,但我想为每个连续标签提供更高的网格列号。第一个是Grid.Column 1,第二个是2,依此类推。如何实现这一目标?
<ItemsControl ItemsSource="{Binding Path=MyLabelTextList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding}" Grid.Column="?" Style="?" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
答案 0 :(得分:1)
你可以拥有一个带字符串和整数的对象,而不仅仅是一个字符串(作为你的ObservableCollection),然后你可以说:
<ItemsControl ItemsSource="{Binding Path=MyLabelObjectList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Content="{Binding string_value}" Grid.Column="{Binding integer_value}" Style="?" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
然后,您可以以某种方式维护ViewModel中的列号。