【问题标题】:How to create Listbox dynamically wpf如何动态创建列表框wpf
【发布时间】:2010-07-12 04:11:57
【问题描述】:
我想动态创建列表框 [codebehind c#]。它的数据源是类对象。
class sample
{
string filepath;
string id;
string trackName;
}
需求:
- 将 trackName 显示为列表框中的列表框项 [动态]。
代码:
sample samp=GetBL.GetValue();
ListBox lbTrack = new ListBox();
StackPanel sp = new StackPanel();
lbTrack.ItemSource = samp;
吉萨。
【问题讨论】:
标签:
wpf
dynamic
listbox
datacontext
【解决方案1】:
创建一个将ObservableCollection<sample> 公开为名为@987654322@ 的属性的类。创建这个类的一个实例,填充它的集合,然后将这个类添加到窗口的资源字典中,例如,Data。覆盖sample 类中的ToString(),使其返回您希望在ListBox 中出现的内容。
然后这样做:
<ListBox ItemsSource="{StaticResource Data, Path=Samples}"/>
不覆盖ToString(),您可以指定显示绑定:
<ListBox ItemSource="{StaticResource Data, Path=Samples}"
DisplayMemberBinding="{Binding Path=trackName"/>
请注意,trackName 必须是属性,而不是字段。
您会注意到我不是以编程方式创建 WPF 控件,而是使用数据绑定来为我完成。这是 WPF 应用程序开发的基本概念。