dav*_*oxy 33 c# wpf xaml listview visual-studio
我现在一直在努力将项目添加到2列中ListView.在我的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);
}
Run Code Online (Sandbox Code Playgroud)
然后我会从我这个班级打电话Form.cs.
我怎么能在WPF中这样做?最好,我不想使用大量的XAML.
Phi*_*hil 97
如果您ListView在XAML中定义:
<ListView x:Name="listView"/>
Run Code Online (Sandbox Code Playgroud)
然后你可以添加列并在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" });
}
Run Code Online (Sandbox Code Playgroud)
见MyItem下面的定义.
但是,在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>
Run Code Online (Sandbox Code Playgroud)
然后只需在C#中填充列表:
public Window()
{
// Initialize
this.InitializeComponent();
// Populate list
this.listView.Items.Add(new MyItem { Id = 1, Name = "David" });
}
Run Code Online (Sandbox Code Playgroud)
见MyItem下面的定义.
MyItem 定义MyItem 定义如下:
public class MyItem
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)