数据绑定WPF列表框?

时间:2009-09-01 06:58:09

标签: c# .net wpf data-binding listbox

如何将列表框数据绑定到包含窗口的类文件中的List?我看了,有一个我可以设置的ItemsSource属性,但我不确定这是否是我想要的,也不确定要设置它。

4 个答案:

答案 0 :(得分:3)

几乎就是这样:

<ListBox ItemsSource="{Binding}">
</ListBox>

然后将DataContext设置为某种字符串集合,就是这样。如果你不想直接绑定到DataContext,你可以这样做,但你可能想把它放在自己的控件中,以便更好地分离功能。

答案 1 :(得分:3)

这是一个非常广泛的问题。您最好的选择是阅读MSDN上的introductory topic

答案 2 :(得分:3)

我明白了:根据这个cheatsheet,我需要使用以下内容:

ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=Categories}"

其中Path设置为包含要绑定的字符串列表的Property的名称。

答案 3 :(得分:0)

以下是一些其他方法:

一种方法是使列表成为窗口类的静态属性,然后像这样绑定它:

{Binding Source={x:Static local:MyWindow.MyList}}

当然,如果您希望窗口的所有实例使用相同的列表,通常只会这样做。

另一种方法是通过添加

将列表添加到窗口的Resources集合中
Resources.Add("MyListKey", MyList);
在调用InitializeComponent之前,在构造函数中

。 (在StaticResource标记扩展执行之前,密钥必须位于资源字典中。)然后您可以像这样绑定它:

{Binding Source={StaticResource MyListKey}}