将项目添加到 WPF ListView 中的列
Posted
技术标签:
【中文标题】将项目添加到 WPF ListView 中的列【英文标题】:Add Items to Columns in a WPF ListView 【发布时间】:2013-03-29 18:02:16 【问题描述】:我一直在努力将项目添加到 ListView
的 2 列中。在我的 Windows 窗体应用程序中,我有这样的东西:
// In my class library:
public void AddItems(ListView listView)
var item = new ListViewItem Text = "Some Text for Column 1";
item.SubItems.Add("Some Text for Column 2");
listView.Items.Add(item);
然后我会从我的Form.cs
调用这个类。
如何在 WPF 中执行此操作?最好不要使用大量的 XAML。
【问题讨论】:
XAML 有什么问题? 【参考方案1】:使用更少 XAML 和更多 C# 的解决方案
如果您在 XAML 中定义 ListView
:
<ListView x:Name="listView"/>
然后您可以添加列并在 C# 中填充它:
public Window()
// Initialize
this.InitializeComponent();
// Add columns
var gridView = new GridView();
this.listView.View = gridView;
gridView.Columns.Add(new GridViewColumn
Header = "Id", DisplayMemberBinding = new Binding("Id") );
gridView.Columns.Add(new GridViewColumn
Header = "Name", DisplayMemberBinding = new Binding("Name") );
// Populate list
this.listView.Items.Add(new MyItem Id = 1, Name = "David" );
参见下面MyItem
的定义。
使用更多 XAML 和更少 C# 的解决方案
但是,在 XAML 中定义列更容易(在 ListView
定义中):
<ListView x:Name="listView">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" DisplayMemberBinding="Binding Id"/>
<GridViewColumn Header="Name" DisplayMemberBinding="Binding Name"/>
</GridView>
</ListView.View>
</ListView>
然后只需在 C# 中填充列表:
public Window()
// Initialize
this.InitializeComponent();
// Populate list
this.listView.Items.Add(new MyItem Id = 1, Name = "David" );
见下文MyItem
的定义。
MyItem
定义
MyItem
是这样定义的:
public class MyItem
public int Id get; set;
public string Name get; set;
【讨论】:
UWP / WinRT 的部分解决方案:***.com/questions/12828704/…以上是关于将项目添加到 WPF ListView 中的列的主要内容,如果未能解决你的问题,请参考以下文章