2010-06-30 24 views
5

我有3頭一個ListView,在XAML聲明如下:如何在沒有任何數據綁定的情況下以編程方式添加多列ListViewItem?

<ListView Name="myListView"> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn Header="H1"/> 
     <GridViewColumn Header="H2"/> 
     <GridViewColumn Header="H3"/> 
    </GridView> 
    </ListView.View> 
</ListView> 

我想一個ListViewItem的程序添加到該ListView控件,能夠設置一個ListViewItem中的內容將在第一個去下,第二和第三列。到目前爲止,我只得到了這麼多:

ListViewItem l = new ListViewItem(); 
l.Content = "Content"; 
myListView.Items.Add(l); 

這將每列設置爲字符串「內容」。如何更改上面的代碼,以便我可以添加一個ListViewItem,分別在第一列,第二列和第三列下顯示「內容1」,「內容2」和「內容3」?我試圖在ListViewItem中查找SubItem或ListViewSubItem屬性,但什麼也沒找到。

我假設有一個簡單的解決方案,但也許我錯了。請不要提及數據綁定,因爲我只想回答以編程方式設置Content屬性以反映每列中個別更改的問題。

非常感謝。

回答

12

這不是數據綁定。將Binding語句看作給該列起一個名字。

<ListView Name="myListView"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="H1" DisplayMemberBinding="{Binding Col1}"/> 
      <GridViewColumn Header="H2" DisplayMemberBinding="{Binding Col2}"/> 
      <GridViewColumn Header="H3" DisplayMemberBinding="{Binding Col3}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

在代碼:

myListView.Items.Add(new { Col1 = "test1", Col2 = "Test2", Col3="test3"}); 
+0

ķ它的作品!謝謝。 – Dalal 2010-06-30 19:15:05

+0

非常好!謝謝! – Haris 2013-04-24 13:02:34

+0

只有在編譯時已知列數時才能使用。我還沒有找到一個解決方案來添加一個字符串的數組,它的計數在運行時是已知的。 – Rajiv 2013-06-04 23:33:14

0

這裏是你做了什麼。

您必須先設置列標題,否則不會顯示。使用字符串數組添加列表視圖項目。

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnLoad(EventArgs e) 
    { 
     base.OnLoad(e); 

     listView1.View=View.Details; 
     //Set Columns 
     listView1.Columns.Add("Col1"); 
     listView1.Columns.Add("Col2"); 
     listView1.Columns.Add("Col3"); 
     //Fill Rows 
     ListViewItem lvi; 
     lvi=new ListViewItem(new string[] { "A", "B", "C" }); 
     listView1.Items.Add(lvi); 
     lvi=new ListViewItem(new string[] { "D", "E", "F" }); 
     listView1.Items.Add(lvi); 
     lvi=new ListViewItem(new string[] { "G", "H", "I" }); 
     listView1.Items.Add(lvi); 
    } 
} 

結果的截圖

Scr

+2

我收到這個錯誤:'System.Windows.Controls.ListViewItem'不包含帶'1'參數的構造函數。'我正在使用WPF。也許我忘了說明這一點。我希望你的解決方案雖然工作。這會讓它變得更容易。 – Dalal 2010-06-30 19:02:11

+1

該代碼不起作用,如上所述相同的錯誤 – 2013-06-02 13:14:07

+0

您能否更新圖片鏈接?現在已經死了。 Thx – abalter 2014-04-25 19:11:19

相關問題