gpt4 book ai didi

wpf - 如何设置ItemsSource?

转载 作者:行者123 更新时间:2023-12-01 10:14:09 26 4
gpt4 key购买 nike

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

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

而且我很难找到好的教程。大多数示例不够详细,或者通过代码来做一些事情,但我想尽可能多地利用 IDE。

ItemsSourceDataContext 有什么区别?

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

最佳答案

将“DataContext”视为绑定(bind)中“Source”的默认值。

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

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

所以我的 TextBox.Text 属性绑定(bind)到名为 Bar(应用程序中某处的资源)的对象上的 Foo 属性。

但是,如果您有一大堆想要绑定(bind)到 Bar 属性的东西,将 Bar 设置为父容器的 DataContext 会更容易。默认情况下,没有 Source 的 Binding 将只使用 DataContext,并且 DataContext 从父控件流向子控件。所以:

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

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

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

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

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

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

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

关于wpf - 如何设置ItemsSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2777450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com