2012-02-13 58 views
3

第一步:一個簡單的列表框自定義列表框WPF使用C#

<ListBox Height="95" HorizontalAlignment="Left" Margin="17,0,0,0" Name="myList" VerticalAlignment="Top" Width="287"> 

與代碼:

myList.Items.Add("toto"); 

好了,它的正常工作。

第二步:我想每行有兩列。

所以我想,

<ListBoxItem Name="my_item"> 
    <StackPanel Orientation="Horizontal"> 
     <TextBlock Name="my_item_id"></TextBlock> 
     <TextBlock Name="my_item_name"></TextBlock> 
    </StackPanel> 
</ListBoxItem> 

但在我的代碼?

我試圖

my_item_id = "1234"; 
my_item_name = "toto"; 
myList.Items.Add(my_item); 

但它不工作...我想我做錯了,但再怎麼做工作?

謝謝。

+0

在您需要的列是調整大小,有一個更加網格狀的外觀和感覺考慮使用一個ListView,而不是列表框的情況下, – SvenG 2012-02-13 17:41:03

回答

7
  1. 你應該分配ItemTemplateListBoxbindsproperties上的項目。例如

    <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel> 
          <TextBlock Text="{Binding Id}"/> 
          <!-- ... --> 
    
  2. 您可以添加具有這些屬性的項目,例如, anonymous objects

    myList.Items.Add(new { Id = "Lorem", ... }); 
    

參見:Data Templating