我想动态创建列表框[codebehind c#]。它的数据源是类对象。
class sample
{
string filepath;
string id;
string trackName;
}
需要:
代码:
sample samp=GetBL.GetValue();
ListBox lbTrack = new ListBox();
StackPanel sp = new StackPanel();
lbTrack.ItemSource = samp;
格塔。
答案 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应用程序开发的基本概念。