如何动态创建wpf列表框
我想动态创建列表框[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;
吉萨。
I want to create listbox dynamically [codebehind c#]. Its datasource is class object.
class sample
{
string filepath;
string id;
string trackName;
}
Needs:
- Display trackName as listbox item in the listbox [dynamically].
Code:
sample samp=GetBL.GetValue();
ListBox lbTrack = new ListBox();
StackPanel sp = new StackPanel();
lbTrack.ItemSource = samp;
Geetha.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
创建一个类,将
ObservableCollection
公开为名为Samples
的属性。创建此类的一个实例,填充其集合,并将该类添加到窗口的资源字典中,其键为 Data。重写sample
类中的ToString()
,使其返回您希望在ListBox
中显示的内容。然后执行以下操作:
在不重写
ToString()
的情况下,您可以指定显示绑定:请注意,
trackName
必须是属性,而不是字段。您会注意到,我不是以编程方式创建 WPF 控件,而是使用数据绑定来为我完成此操作。这是 WPF 应用程序开发的一个重要的基本概念。
Create a class that exposes an
ObservableCollection<sample>
as a property named, say,Samples
. Create an instance of this class, populate its collection, and add the class to the window's resource dictionary, with a key of, let's say,Data
. OverrideToString()
in thesample
class to make it return what you want to appear in theListBox
.Then do this:
Without overriding
ToString()
, you can specify a display binding:Note that
trackName
must be a property, not a field.You'll notice that I'm not programmatically creating WPF controls, and am instead using data binding to do it for me. This is an essential, fundamental concept of WPF application development.