wpf – 如何使用XAML绑定到GridView的ColumnCollection

我有一组对象,我想在GridView中表示列.

目前,我将GridView中的各个列绑定到集合中的项目,如下所示:

<ListView>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="{Binding Path=MyColumns[0].Title}"></GridViewColumn>
            <GridViewColumn Header="{Binding Path=MyColumns[1].Title}"></GridViewColumn>
            <GridViewColumn Header="{Binding Path=MyColumns[2].Title}"></GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

这很好用,但我真正想做的是绑定到集合本身(因为集合中的项目数可能会在运行时更改).我想在XAML中实现这一目标.我想到的是这样的(注意这不起作用 – ColumnsSource属性是假设):

<ListView>
    <ListView.View>
        <GridView ColumnsSource="{Binding Path=MyColumns}">
        </GridView>
    </ListView.View>
</ListView>

可以这样做吗?如果是这样,怎么样?

最佳答案 您可以使用
attached property创建ColumnsSource属性,有关示例,请参阅
this question.

点赞