2011-12-27 14 views
2

wpfにリストビューのサブアイテムを挿入したいと思います。wpfでサブアイテムを追加する方法listvew c#

私は、Windowsフォームリストビューにサブ項目を挿入するには、このコードを使用して

con.Open(); 
DataTable dt = new DataTable(); 
DataSet ds = new DataSet(); 
ds.Tables.Add(dt); 

OleDbDataAdapter da = new OleDbDataAdapter("select * from test where (SecSym='" + secsym + "')", con); 
da = new OleDbDataAdapter("select * from test where (SecSym='" + secsym + "')order by Date desc", con); 
da.Fill(dt); 
int iRecords = 0; 
foreach (DataRow myrow in dt.Rows) 
{ 
    ListViewItem lItem = new ListViewItem(); 
    lItem.UseItemStyleForSubItems = false; 
    DateTime Date = DateTime.ParseExact(myrow[3].ToString(), "yyyyMMdd", CultureInfo.CurrentCulture); 
    string date = Date.ToString("ddd, dd-MMM-yyyy"); 
    lItem = listviewTargets.Items.Insert(iRecords, date); 
    lItem.UseItemStyleForSubItems = false; 
    // listviewTargets.Items.Add(myrow[2].ToString()); 
    lItem.SubItems.Add(myrow[1].ToString()); 
    lItem.SubItems.Add(myrow[15].ToString()); 
    lItem.SubItems.Add(myrow[5].ToString(), Color.White, Color.Green, lItem.Font); 
    lItem.SubItems.Add(myrow[7].ToString()); 
    lItem.SubItems.Add(myrow[8].ToString()); 
    lItem.SubItems.Add(myrow[9].ToString()); 
    lItem.SubItems.Add(myrow[10].ToString()); 
    iRecords++; 
    lItem = listviewTargets.Items.Insert(iRecords, ""); 
    lItem.UseItemStyleForSubItems = false; 
    lItem.SubItems.Add(""); 
    lItem.SubItems.Add(""); 
    lItem.SubItems.Add(myrow[6].ToString(), Color.White, Color.Red, lItem.Font); 
    lItem.SubItems.Add(myrow[11].ToString()); 
    lItem.SubItems.Add(myrow[12].ToString()); 
    lItem.SubItems.Add(myrow[13].ToString()); 
    lItem.SubItems.Add(myrow[14].ToString()); 
    iRecords++; 
} 
con.Close(); 

しかし、私は、WPFのリストビューにサブ項目を挿入する方法がわからないのです。

誰かが私にできるなら、大きな感謝があります。

ありがとうございました。

答えて

2

WPFリストビューは少し異なっており、あなたは次のようにあなたの目標を達成できる ない「サブアイテム」を持っていない:

<ListView ItemsSource="{Binding People}"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/> 
      <GridViewColumn Header="Date of Birth" DisplayMemberBinding="{Binding DOB}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

:(コレクションへのデータバインディングで)XAMLでリストビューを定義

この例の分離コード:

public partial class MainWindow : Window 
{ 
    public class Person 
    { 
     public string Name {get;set;} 
     public DateTime DOB {get;set;} 
    } 

    public IList<Person> People { get; set; } 

    public MainWindow() 
    { 
     People = new List<Person>() 
     { 
      new Person() {Name = "Martin", DOB = DateTime.Now.AddYears(-20)}, 
      new Person() {Name = "Lilo", DOB = DateTime.Now.AddYears(-25)} 
     }; 

     InitializeComponent(); 
     this.DataContext = this; 
    } 
} 

ListView Expample