【问题标题】:Custom WPF ListBox using c#使用 c# 自定义 WPF ListBox
【发布时间】:2012-02-13 14:44:02
【问题描述】:

第一步:一个简单的列表框

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

但它不工作......我想我做错了,但是如何让它工作?

谢谢。

【问题讨论】:

  • 如果您希望列可调整大小并具有更像网格的外观和感觉,请考虑使用 ListView 而不是 ListBox

标签: c# wpf xaml listbox


【解决方案1】:
  1. 您应该在项目上将ItemTemplate 分配给ListBox,其中binds 分配给properties。例如

    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Id}"/>
                <!-- ... -->
    
  2. 您添加具有这些属性的项目,例如anonymous objects:

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

另见:Data Templating

【讨论】:

    猜你喜欢
    • 2014-09-23
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多