问题标签 [multibinding]

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 回答
2693 浏览

java - 使用 Multibinding 泛化 guice 的机器人腿示例

我有这个与 Guice 的机器人腿示例非常相似的用例,除了我不知道我有多少“腿”。因此我不能使用机器人腿示例所需的注释。

我希望在带有 Guice 的 Multibindings 扩展的 java.util.Set 中收集所有这些“腿”。

从技术上讲,在 PrivateModule 中,我想将实现直接公开为将由 Multibindings 扩展提供的集合的元素。我只是不知道该怎么做。

有关参考和代码示例,请参阅此处的机器人腿示例:http ://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions#How_do_I_build_two_similar_but_slightly_different_trees_of_objec


这是我的精确用例:

我有以下内容:

由于我说的是扩展罐,我一开始并不了解它们,我什至不知道它们有多少:我需要加载MyModulesj.u.ServiceLoader并且每个模块都应该定义一个MyInterface实现(这两部分是行)。

问题是将所有MyInterface实现放在一组(in MyManager)中。我怎样才能做到这一点?


解决方案,完全基于杰西的回答:

这允许我不强制“客户”扩展 PrivateModule,而是使用任何模块实现,如果 MyModule 是扩展模块的接口。

0 投票
2 回答
1285 浏览

wpf - 如何将组合框文本绑定到不在下拉列表中的旧数据?

我的组合框的下拉列表 (itemssource) 包含新产品请求项目。我想绑定到不在下拉列表中的旧数据。为了使事情复杂化,我使用多重绑定和 IMultiValueConverter 来组合显示字段。此外,绑定字段的名称与我绑定的属性名称不匹配。

组合框 itemssource 是 NewProductRequests 的列表。从此 NPR 对象中,NewProdNumber 和 NewProdName 组合在一起,以便由我的类型转换器显示在下拉列表中。ConvertBack 方法返回值 NewProdNumber 和 NewProdNumberCombinedWithName。这两个值将保存到名称略有不同的数据库字段中。对于本示例,我将它们称为 DBProdRequestNumber 和 DBProdRequestTitle。

我已成功显示和保存新项目。问题是我还没有弄清楚如何显示不在列表中的旧数据。它不在列表中,因为它不再符合产品请求的条件。

这是 XAML 的问题(itemssource 在代码隐藏中设置):

我使用基于来自 Julie Lerman的MSDN Magazine 示例的 DataGridTemplateColumn.CellEditingTemplate 解决了与数据网格和组合框类似的问题。当然,在这种情况下,我没有使用数据网格。

提前感谢您的帮助。

0 投票
1 回答
698 浏览

c# - 输出中的多重绑定错误

我有一个根据两个属性启用的按钮。我将 MultiBinding 与转换器一起使用。

一切正常,但输出一直说:

这里有一些类似问题的问题: WPF MultiBinding Fails。为什么?

任何简单的解决方案,或者我应该在 ViewModel 中创建逻辑并只绑定到一个属性?

代码: XAML:

转换器:

ViewModel 变量只是两个布尔值

0 投票
1 回答
838 浏览

.net - 使用 VB.Net 在 Silverlight 中进行多重绑定

我正在尝试使用 VB.Net 在 Silverlight 中实现多重绑定。我在这里找到了一个非常好的 C# 实现参考。我花了一些时间尝试使用各种转换器将其迁移到 VB.Net,但我仍然没有让它正常工作。所以..

我正在寻找一些参考资料来说明如何在 VB.Net 中完成 MultiBinding

另外一个使用 Silverlight 5 beta 的例子也很好(我在 Stack Overflow 上的一篇文章中读到支持多重绑定)。

0 投票
2 回答
791 浏览

wpf - 同时访问Datacontext和代码中的一个属性

我正在使用 MVVM/WPF 并尝试做一些看似简单的事情,但找不到干净的解决方案。

我想做以下事情:

当模型中的属性发生变化时(在这种情况下,WPF 文本框文本会发生变化),使用方法在 UI 上执行与属性绑定相关的其他操作。

目前我在工具提示上使用多重绑定(获取文本框数据上下文 + 绑定路径),但这有点 hack。

我想做一些可重复使用的东西,也许可以用于不同的控件,因此我不只是使用 textchanged 事件。

如果有人能指出我正确的方向,将不胜感激。

0 投票
5 回答
18418 浏览

c# - 转换器中的 WPF MultiBinding 失败 ==> DependencyProperty.UnsetValue

我的代码在启动时失败,因为由Converter调用的 values 数组Multibinding填充正确的值,但值为 DependencyProperty.UnsetValue.

看看转换器,也看看我在哪里得到错误

您可以下载完整代码或查看我的代码片段,如下所示。

主窗口.xaml

主窗口.xaml.cs

这就是 ViewModel 类。

PageViewModel.cs

PageNumberViewModel.cs

0 投票
1 回答
759 浏览

wpf - 当绑定值之一更改时,TreeView 中的 MultiBinding 折叠 TreeViewItems

我有一个绑定到具有属性名称和两个列表的类型视图对象的 TreeView。当我在其中一个扩展列表中添加元素时,它会保持扩展状态,这就是我想要的。问题是当我更改 View1 的名称时,所有 Multibinging 绑定都被刷新并且所有展开的列表(如果 View1 中有任何折叠),但 View1 仍然展开。有什么方法可以避免这种行为,以便在 Name 的值更改时转换器以某种方式仅更改更改后的 Value 而不会整理其他 Bindings 。谢谢

0 投票
2 回答
1889 浏览

wpf - WPF a Multibinding on ColumnDefinitions

I have a Grid that holds segments such as:

Each segment's visual length is dependant upon the total length, and its position depends upon the end of the previous segment.

I have a MultiBinding to achieve this, that calculates Width of 3 ColumnDefinition.

I first thought I'd calculate the entire ColumnDefinitions so that each item is placed correctly, but as it happens, the compiler doesn't allow me to bind Grid.ColumnDefinitions, i.e you can't do this:

So now, I'm thinking my only option is to make 3 IMultiValueConverters, bind each of the 3 ColumnDefinition.Width to their respective converter, and calculate everything... but that sounds very nasty and my "Oh-My-God-You're-Going-Down" alarm rang.

Any idea to do this elegantly?

Thanks!

EDIT: Yurek's code a bit modified : (Is that what you meant? or did I destroy it? :p)

0 投票
1 回答
169 浏览

wpf - 为什么除非可见,否则不会在 Multibinding 中生成 TreeViewItems?

我有一个 3 级 TreeView,它使用多重绑定为 Class A 2 TreeViewItems 的每个实例生成为 Class B 的列表。每个 List 都包含 Items 可以说 Class C 。

当 Lists(Class B) 折叠时,我可以在 UI 中为每个 List 添加 Class C 的项目。我什至可以在整个 TreeViewItem(Class A) 折叠时为每个 List(Class B) 添加 Class C。

我的问题是我需要能够访问所有 TreeViewItems,即使它们已折叠。(例如选择它们)。

我尝试这样做,但遇到了以下问题:

1-所有不可见的 TreeViewItems(B 类和 C 类)尚未创建为 TreeViewItems。(我怎样才能使它们成为?)

2-当您第一次扩展 B 类 TreeViewIiem 时,您可以将其所有项目(C 类)视为 TreeViewItems。(显然是微不足道的)

3-在特定A 类 TreeViewItem中展开任何 B 类(只有 2 个)折叠将导致能够将 C 类实例添加为TreeViewItems,即使整个 TreeViewItem(A 类)被折叠。(只要你留下在这个类 A TreeViewItem)

4-如果您更改所选的 A 类(即,如果您单击另一个 TreeViewItem,其 A 类的祖先与所选的不同)所有不可见的先前选择的 A 类的 TreeViewItems 都将丢失。并且您可以在新选择的 A 类中从第 1 步重新开始。

那么我怎样才能在任何给定时刻选择 C ​​类或 B 类的任何 TreeViewItem 呢?

谢谢

0 投票
1 回答
89 浏览

c# - 使用公共参数绑定两个集合

我想在同一个网格中显示两个不同 ObservableCollection 的内容。它们有一个共同的参数(一个 id),我想通过这个 id 链接这两个集合。我想我必须使用多重绑定,但我怎么能说我想“链接”这些 id?

如果我不够清楚,就说我。

谢谢,

M。