XAML绑定列号以动态创建网格子节点

时间:2017-06-29 14:50:16

标签: c# wpf xaml mvvm

我在网格中有一个ItemsControl。它的工作原理是我可以在单击按钮时生成项目,但如何设置列?标签文本添加在ObservableCollection中。现在显然我最终会在我的数组中为每个文本添加一个标签,但我想为每个连续标签提供更高的网格列号。第一个是Grid.Column 1,第二个是2,依此类推。如何实现这一目标?

<ItemsControl ItemsSource="{Binding Path=MyLabelTextList}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Label Content="{Binding}" Grid.Column="?" Style="?" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
</ItemsControl>

1 个答案:

答案 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中的列号。