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で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で列を定義するほうが簡単です(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; }
}