问题标签 [itemssource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1844 浏览

silverlight - 为什么这个简单的数据绑定场景不起作用?(组合框相关)

我已经在这个问题上挠了一段时间了,现在我很难过。

问题场景更容易解释为代码,因此希望它不言自明。首先,我在 XAML 中有一个带有以下内容的 silverlight 应用程序...

我的代码隐藏看起来像这样......(全部写在一个类文件中,以便您可以轻松地将其复制到您自己的项目中并编译)

所以让我解释一下......我开始编写一个通用的方法来创建一个具有SelectedItem属性的 ObservableCollection,这样当我将集合绑定到 ComboBox 时,我可以将 ComboBox 的SelectedItem属性绑定到它。

但是,由于某种原因,当 ComboBox 通过 ItemTemplate 有效嵌套时,它似乎不起作用。我实际上有一个列表列表,这个场景非常简单,以至于我不知道出了什么问题。

当您运行代码时,您会看到模板化的 ComboBox 确实选择了正确的项目,但它从未设置为 SelectedItem 尽管绑定。

我知道这很啰嗦,但是……有什么想法吗?

非常感谢

0 投票
2 回答
355 浏览

c# - 我的 ItemsSource 语法可以吗?

我有以下 XAML。假设 FruitList 是 Fruits 的集合,每个 FruitSeeds 都有一个 FruitSeeds 集合。是否有将 cbxFruitSeeds 绑定到 FruitSeeds 集合的语法,具体取决于在 cbxFruits 中选择了哪个 Fruit?

0 投票
3 回答
1342 浏览

c# - XAML 中的 WPF 数据绑定

在我当前的项目中,我对数据绑定没有什么问题。我有一个要绑定到 ListBox 的 ObservableCollection。

...之后...

这段代码工作正常。列表框有一个数据模板,一切看起来都很完美。

但我不想使用 C# 代码进行绑定。我想在 XAML 代码中进行绑定。我正在寻找几天,但我不明白。这是两行 C# 代码,但要在 XAML 中存档,如果不为我的集合创建自己的类或添加 DataProvider 或资源或其他任何东西,似乎是不可能的。

没有简单的方法吗?

0 投票
2 回答
7071 浏览

c# - 如何在 Silverlight 中手动将数据添加到 DataGrid

我发现可以在 Silverlight 中动态创建和绑定数据网格列。但是我找不到将数据绑定到这些列的方法。

如果我尝试使用 AutoGenerateColumns = true 绑定任何类型的对象,则对象的每个属性的名称都会添加为列,并且除了不显示数据的现有列之外,对象信息还会显示在网格中。

如果我应用 AutoGenerateColumns = false 的列表,那么我仍然会在表中显示行,但列中没有数据。

我不想为需要在数据网格中显示数据的每种情况创建一个特定的对象。

我不想让我的列名仅限于属性名称,例如没有空格的名称。

我希望能够将列表或字典数组绑定到数据网格。我还希望能够控制哪些数据显示在哪些列中。

0 投票
1 回答
3546 浏览

wpf - ItemsSource + Converter + Treeview 不会更新

这个相当复杂,希望我能把这个说清楚,以便有人帮助我。我有一个对象,我们称之为经理,经理有一组他管理的人,这些人都实现了 IPerson,但不同类型的人有不同的属性。我想在树中显示这个经理,在经理节点下我想显示他正在管理的所有项目,这些项目可以从他管理的人中确定。

所以计划是使用转换器将人员转换为项目列表。这是 XAML:

我的 Person 类实现了 INotifyPropertyChanged,而持有人员的列表实现了 INotifyCollectionChanged。当我设置树视图 ItemsSource 时,此代码效果很好,经理与他们的项目列表一起显示。

但是,当我将新人添加到人员列表时,TreeView 不会更新。当我调试时,我可以看到 CollectionChanged 正在使用 Add 操作和添加的项目触发。CollectionChanged 事件也不为空,所以我知道 UI 正在观看它。但是添加项目时转换器不会执行。

这是保存 IPerson 对象的 List 的 Add 方法:

我是否以某种方式破坏了数据绑定?

我还可以检查哪些其他内容?

转换器只是查看人员列表中的每个项目并确定他们正在处理的项目并将项目名称添加到输出列表中。

0 投票
2 回答
17290 浏览

wpf - 为什么 DataContext 和 ItemsSource 不是多余的?

在 WPF 数据绑定中,我知道您有DataContext哪个告诉元素它将绑定到哪些数据以及ItemsSource哪个“进行绑定”。

但是例如在这个简单的例子中,它似乎没有ItemsSource做任何有用的事情,因为除了绑定到它之外,您还希望元素对它做DataContext什么?

而在更复杂的例子中ItemsSource,你的路径和源头似乎正在侵占DataContext.

理解这两个概念以了解何时以及如何在各种编码场景中应用它们的最佳方法是什么?

0 投票
0 回答
8121 浏览

wpf - WPF - 来自 ListBox DataTemplate 内的两个源的多重绑定

我试图环顾四周,看看我是否遗漏了一些基本的东西,但我似乎无法理解我做错了什么。

我有一个列表框,我想将 itemssource 绑定到数据集中的照片集合视图。问题是,我需要从 MasterView CollectionView 中获取图像所在的目录,以及从 DetailView CollectionView 中获取各个文件名。所以我定义了资源:

这似乎没有问题,我可以浏览数据集并查看主数据和详细数据。

为了获得完整的图像路径,我发现我需要一个多重绑定来将两者放在一起,并成功创建了一个:

我对后续代码的假设是,DataTemplate 中的 MultiBinding 可以访问列表框中定义为 ItemsSource 的 BindingSource。但是,当我查看 MultiValueConverter 代码时,它只传递来自 MasterView 的数据和第二个值的通用对象。

为了看看我是否可以让它工作,我在多重绑定中添加了详细的源信息:

这至少让我看到列表框中有 5 张图片,但它们都是同一张图片。似乎对 DetailView CollectionView 的多重绑定访问只显示了第一项。

有没有办法将“pictureFileName”链接到当前的 ItemsSource 项,以便显示正确的图片?

谢谢!

乔什

0 投票
3 回答
603 浏览

wpf - 绑定路径属性应该设置为什么?

假设我在 C# 中有这个结构定义:

我有一个 linq 查询:

如果我将 ListBox 的 ItemsSource 属性设置如下:

现在,如何设置绑定路径以从上述查询结果中引用“BackgroundCol”字段?

我已经尝试过 {Binding Path=TimeSlotInfo.BackgroundCol}、{Binding Path=TimeSlotInfo/BackgroundCol},最后是 {Binding Path=BackgroundCol} ...它们似乎都没有工作..

任何人都可以帮忙吗?我试图尽可能简化这个例子。希望我的问题足够清楚。提前致谢。

0 投票
1 回答
544 浏览

c# - 创建一个自定义控件,它是一个也有 Items 和 ItemsSource 的 Button?

我正在尝试创建一个SplitButton使用 aContextMenu来显示其项目的控件。目前SplitButton来自Button. 我有一个PART_DropDownInitiator小图标,用户单击它会调ContextMenuSplitButton以显示其项目。

问题是我试图在's或样式ContextMenu内设置默认值,这样控件的用户就不必自己做。起初我想我只是让用户在 xaml 中设置属性,但这似乎是不可能的。现在我想在's 的模板中添加一个和属性可以绑定到它。并且用户不应该只需要在 xaml 或代码隐藏中设置or属性...SplitButtonTemplateSplitButton.ContextMenu.ItemsItemsItemsSourceSplitButtonContextMenuSplitButtonItemsItemsSourceSplitButton

但是,ItemsItemsSource属性似乎都源自ItemsControl,这是一个问题,因为SplitButton已经源自Button。所以我不确定该怎么做......有什么想法吗?

0 投票
4 回答
1274 浏览

silverlight - 将 ItemsSource 绑定到“代理”集合。如何获取数据上下文?

我们有一个 Silverlight 应用程序,其中包含多个列表框和组合框,这些列表框和组合框显示的数据排序不正确,我需要对其进行修复。它们的大部分 ItemSource 属性都是通过 XAML 设置的。它们的 DataContext 可能不会直接在控件上设置,而是在父级上设置。所以我不能轻易地在后面代码中的 ItemSource 或 DataContext 分配上加上“OrderBy”,因为该分配可能不明确存在。

所以我有了创建一个“代理”集合的想法。代理集合将获取原始 ItemSource 并公开排序版本。然后我就可以转换这个:

进入这个:

不是太寒酸!但是,由于 ProxyCollection 不是 ListBox 的子项,因此 ListBox 的 DataContext 不会传播给它,并且绑定不会神奇地起作用。如果我手动设置 ProxyCollection 集合的 DataContext 效果很好。但是,如果无论如何我都必须手动设置 DataContext,我也可以删除代理集合并手动设置 Listbox 的 DataContext,添加一个“OrderBy”。

那么关于如何在代理集合上自动获取 ListBox 的 DataContext 集的任何想法?还是有其他天才的想法?