请原谅我的高傲。
我是从Windows Forms过来的,所以我可以使用很棒的Fluent Ribbon Control Suite。我正在为某人重做一个应用程序。
基本上,我需要能够以编程方式创建新的Column
并在运行时使用DB Query中的Items填充它们。根据单击的按钮,我还需要清除ListView中的所有项目,并使用不同的列名称和其他数据库查询中的新项目重新填充它。
但是我很难想出来。我只是不明白。在查看在线之前,我做的第一件事是(思考并希望它与Windows Forms的工作方式非常相似):
GridViewColumn gvc = new GridViewColumn();
gvc.Header = "hi baeltazor!";
listView1.Items.Add(gvc);
但是,我错了。我试图在那里做的是创建一个名为“hi baeltazor!”的专栏。并将其添加到ListView。如何在运行时使用项目和列填充ListView?
我见过的唯一解决方案涉及很多XAML,我不知道它是如何工作的,因为我无法在运行时更改XAML?
答案 0 :(得分:4)
<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);
答案 1 :(得分:3)
一个建议......考虑使用DataGrid控件(似乎适合您的要求) 它可以自动为项目源生成列。 如果你真的想自己创建列...你可以通过使用4种类型的DataGridColumn来实现,这些类型可能不需要设置CellTemplate(这很容易从后面的代码中实现)。当然,有一种类型可以指定CellTemplate