如何动态创建wpf列表框

发布于 2024-09-08 17:04:58 字数 369 浏览 6 评论 0原文

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

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

需求:

  1. 将 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:

  1. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

这个俗人 2024-09-15 17:04:58

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

然后执行以下操作:

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

在不重写 ToString() 的情况下,您可以指定显示绑定:

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

请注意,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. Override ToString() in the sample class to make it return what you want to appear in the ListBox.

Then do this:

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

Without overriding ToString(), you can specify a display binding:

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文