2011-12-27 28 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的ListView子項。

如果有人能幫我,我會非常感謝。

在此先感謝。

回答

2

的WPF列表視圖是一個有點不同,並沒有「子項」 你可以實現你的目標如下:

定義列表視圖中的XAML(可與數據綁定到集合):

<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> 

這個例子的代碼隱藏:

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