WPF和ListView -添加列和项目@运行时

本文关键字:项目 运行时 添加 ListView WPF | 更新日期: 2023-09-27 17:49:25

请原谅我的无礼。

我是从Windows窗体转过来的,所以我可以使用很棒的流畅Ribbon控制套件。我正在为某人重新设计一个应用程序。

基本上,我需要能够以编程方式创建新的Column,并在运行时用DB查询中的项填充它们。根据单击哪个按钮,我还需要清除ListView中的所有项目,并使用不同的列名以及来自另一个DB查询的新项目重新填充它。

但是我很难弄清楚这一点。我就是不明白。我做的第一件事,在上网之前,是这样的(思考和希望它会非常类似于Windows窗体的做法):

GridViewColumn gvc = new GridViewColumn();
            gvc.Header = "hi baeltazor!";
            listView1.Items.Add(gvc);

但是,我错了。我要做的是创建一个名为"hi baeltazor!"的列,并将其添加到ListView中。我们如何在运行时用项和列填充ListView ?

我所见过的唯一的解决方案有很多XAML涉及,我不知道它是如何工作的,因为我不能在运行时改变XAML ?

WPF和ListView -添加列和项目@运行时

<ListView x:Name="ListViewControl">
    <ListView.View>
        <GridView x:Name="GridViewControl"/>
    </ListView.View>
</ListView>

和后面的代码

ListViewControl.ItemsSource = ItemsSourceObject;   //your query result 
GridViewColumn column = new GridViewColumn();
column.Header = "Name";
column.DisplayMemberBinding = new Binding("Name");
GridViewControl.Columns.Add(column);

一个建议…考虑使用DataGrid控件(似乎适合您的需求)它可以自动为项目源生成列。如果你真的想自己创建列…你可以通过使用4种类型的DataGridColumn来做到这一点,这可能不需要设置CellTemplate(这很容易从代码后面实现)。当然还有一个类型你可以在其中指定CellTemplate

相关文章: