wpf – 如何设置ItemsSource?

这个对话对我来说毫无意义

http://img576.imageshack.us/img576/4223/50709706.gif

而且我很难找到合适的教程.大多数示例都不够详细,或通过代码执行,但我想尽可能利用IDE.

什么是ItemsSource和DataContext之间的区别?

我想将它绑定到一个列表中作为初学者.我不需要SQL或数据库或任何花哨的东西.我在哪里申报我的名单?在MainWindow.xaml.cs中?如何让它出现在该对话框中?

将“DataContext”视为绑定中“Source”的默认值.

创建绑定时,可以指定路径和源,如下所示(我将使用TextBox作为示例):

<TextBox Text="{Binding Path=Foo,Source={StaticResource Bar}}" />

因此,我的TextBox.Text属性绑定到名为Bar的对象(应用程序中的某个资源)上的Foo属性.

但是,如果要将大量事物绑定到Bar上的属性,则将Bar设置为父容器的DataContext会更容易.没有Source的绑定将默认使用DataContext,DataContext将从父级流向子控件.所以:

<StackPanel DataContext="{StaticResource Bar}">
    <TextBox Text="{Binding Path=Foo}" />
    <TextBox Text="{Binding Path=Fizz}" />
    <TextBox Text="{Binding Path=Buzz}" />
</StackPanel>

所有TextBox仍然绑定到Bar上的属性,但是他们没有明确地将它设置为Source.

那么让我们再看看你发布的对话框.它为ItemsSource绑定的“源”提供了几个选项.当您选择“DataContext”时,您告诉Visual Studio ItemsControl不需要知道源 – 它将从父容器的DataContext(甚至可能是Window本身)中获取它.

如果您选择了其他选项之一(ElementName,RelativeSource或StaticResource),那么您将为该ItemsControl显式设置绑定的源.

一旦你告诉它它绑定到DataContext,你需要进入对话框的“Path”部分并告诉它将哪个属性绑定到控件的项目.最后,标记看起来像这样(假设它是一个ListBox):

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

因此ListBox中的项来自名为“Foos”的属性,该属性位于逻辑树中较高位置的DataContext中的对象上(可能在Window本身上).

相关文章
相关标签/搜索