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 ?
<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