如何动态创建Listbox wpf

时间:2010-07-12 04:11:58

标签: wpf dynamic listbox datacontext

我想动态创建列表框[codebehind c#]。它的数据源是类对象。

class sample
{
  string filepath;
  string id;
  string trackName;
}

需要:

  1. 将listName显示为列表框中的列表框项目[动态]。
  2. 代码:

    sample samp=GetBL.GetValue();
    ListBox lbTrack = new ListBox();
    StackPanel sp = new StackPanel();
    lbTrack.ItemSource = samp;
    

    格塔。

1 个答案:

答案 0 :(得分:2)

创建一个类,将ObservableCollection<sample>公开为名为Samples的属性。创建此类的实例,填充其集合,并将该类添加到窗口的资源字典中,使用密钥,例如Data。覆盖ToString()类中的sample,以使其返回您希望在ListBox中显示的内容。

然后这样做:

<ListBox ItemsSource="{StaticResource Data, Path=Samples}"/>

如果不覆盖ToString(),您可以指定显示绑定:

<ListBox ItemSource="{StaticResource Data, Path=Samples}" 
         DisplayMemberBinding="{Binding Path=trackName"/>

请注意,trackName必须是属性,而不是字段。

您会注意到我没有以编程方式创建WPF控件,而是使用数据绑定为我执行此操作。这是WPF应用程序开发的基本概念。