使用c#自定义WPF ListBox

twe*_*sat 3 c# wpf xaml listbox

第一步:一个简单的ListBox

<ListBox Height="95" HorizontalAlignment="Left" Margin="17,0,0,0" Name="myList" VerticalAlignment="Top" Width="287">
Run Code Online (Sandbox Code Playgroud)

用那个代码:

myList.Items.Add("toto");
Run Code Online (Sandbox Code Playgroud)

好的,它工作正常.

第二步:我希望每行有两列.

所以我试过了

<ListBoxItem Name="my_item">
    <StackPanel Orientation="Horizontal">
        <TextBlock Name="my_item_id"></TextBlock>
        <TextBlock Name="my_item_name"></TextBlock>
    </StackPanel>
</ListBoxItem>
Run Code Online (Sandbox Code Playgroud)

但在我的代码中?

我试过了

my_item_id = "1234";
my_item_name = "toto";
myList.Items.Add(my_item);
Run Code Online (Sandbox Code Playgroud)

但它不起作用......我想我做错了但是如何使它工作?

谢谢.

H.B*_*.B. 7

  1. 您应该分配ItemTemplateListBox结合性能上的项目.例如

    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Id}"/>
                <!-- ... -->
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您添加具有这些属性的项目,例如匿名对象:

    myList.Items.Add(new { Id = "Lorem", ... });
    
    Run Code Online (Sandbox Code Playgroud)

另请参见:数据模板