问题标签 [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 投票
3 回答
1699 浏览

wpf - 多重绑定。如何将正确的值更新为源?

我的问题如下。

我有 3 个文本框绑定到数据集中的 3 个字段。TextBox_RateTextBox_HoursTextBox_Salary

我需要的是TextBox_Rate + TextBox_Hours = TextBox_Salary

我发现这可以通过使用MultibindingConverter来实现。

多重绑定如下所示:

和转换器:

结束类

所有这些都 100% 有效。我得到了我想要的结果。但这也是问题所在……

TextBox_Rate绑定到 Dataset 字段RateTextBox_Hours绑定到 Dataset 字段Hours并且最初(在多重绑定之前)TextBox_Salary绑定到 Dataset 字段Salary但现在绑定到TextBox_Rate AND TextBox_Hours。并且从 Multibinding 生成的值不会更新回源字段“Salary”,因为它没有绑定该字段。

如何设置绑定以更新该字段?

提前致谢。

0 投票
2 回答
4650 浏览

wpf - 如何使用 MultiBinding 在上下文菜单中隐藏分隔符?

我在 wpf 树视图上使用上下文菜单,我几乎在那里我想要什么。在解释问题之前,让我解释一下上下文菜单的 XAML 定义在做什么。

对于上下文菜单中的每个菜单项,我们都有一个基于命令 CanExecute 方法禁用或启用菜单项的命令。每个命令都会根据 CanExecute 的结果设置相应菜单项的 IsEnabled 属性。

每个菜单项的 IsEnabled 都绑定到 BooleanToVisibilityConverter,它将 IsEnabled 布尔值转换为 Collapse 或 Visible 值以绑定菜单项的 Visibility 属性。这再次正常工作,我的菜单项显示和隐藏都很好。

现在解决问题。在下面的 XAML 中,我们在分隔符上方有两个菜单项(addCategoryMenuItem 和 removeCategoryMenuItem)。我正在尝试通过 IMultiValueConverter (MultiBooleanToVisibilityConverter) 的自定义实现对这两个菜单项的 IsEnabled 属性进行 MultiBinding,以便当禁用这两个菜单项时,我可以将 Separator 的 Visibility 属性设置为折叠,从而在菜单项被禁用。

对于我的 Converter(MultiBooleanToVisibilityConverter) 中的 Convert 方法,参数值(对象 [] 值)我在数组中获得了两个包含值“{DependencyProperty.UnsetValue}”的项目。这些不能转换为布尔值,因此无法计算出我的 Visibility 值。

可能与 MultiBinding 中使用的 ElementName 有关。它找不到元素吗?我曾尝试使用RelativeSource,即查找祖先等。但我只是感到困惑。我已经花了几个小时在这上面,所以现在我把它留给了社区。

亲切的问候

穆罕默德

0 投票
1 回答
3942 浏览

wpf - IMul​​tiValueConverter ConvertBack 问题

我正在使用 wpf + mvvm 并尝试实现条件转换器。这是我在 xaml 中所做的事情:

多转换器:

所以我想要做的是根据用户所在的页面类型有条件地将页面上的元素绑定到我在 viewController 中拥有的不同模型。

我需要为转换返回做什么?我不知道如何判断该值属于返回数组中的哪个元素。有任何想法吗?

0 投票
2 回答
2150 浏览

wpf - MultiBinding 不工作,但相应的 Binding 工作

我有以下代码:

设置是包含控件的数据类型是“SIP_ServiceItem”。此类有一个名为“Meeting”的属性(设置为本地的 DataContext:StaffAtMeetingEditor 控件),它本身有一个名为“ParentSI”的成员,指向父 SIP_ServiceItem 对象。

问题是,如果我将它作为单个绑定传递(即从上面的代码中删除开始和结束 MultiBinding 标记,只留下绑定),它就可以正常工作。但是,当我将其设为 MultiBinding(我希望尽快添加一些其他绑定)并尝试将绑定值传递给 myMeetingLogEditableMultiConverter 时,应该对应于布尔值 ParentSI.ItemInEditMode 的 values(0) 参数实际上是一个MS.Internal.NamedObject,暗示某处有空引用。此外,ParentSI 属性从未被评估过,因此出现了完全错误的情况。我不知道单绑定和多绑定案例之间的区别。

谢谢。

0 投票
2 回答
20134 浏览

wpf - ConverterParameter 与多绑定绑定

是否可以将绑定添加到 MultiBinding 中的 ConverterParameter?像这样的东西:

其中 IsFiltered 是应用模板的对象的属性。我总是收到一个 XAML 解析器错误,即 ConverterParameter 中的绑定不正确/允许...或者是否有其他方法可以做到这一点?

问候,

于尔根

0 投票
1 回答
4615 浏览

c# - 如何手动更新多重绑定

我遇到了问题Binding。依赖属性与转换器绑定Rectangle.Fill到一个。ObservableCollection虽然ObservableCollectionimplements INotifyCollectionChanged,绑定没有更新。但是,我设法通过将我的委托附加到集合的更改通知事件并手动刷新绑定来解决这个问题:

但是,最近,我将 更改BindingMultiBinding,并且上述解决方案停止工作(即bis null)。有没有办法强制Multibinding更新目标属性?

最好的问候——幽灵。

0 投票
1 回答
3463 浏览

wpf - 在 MultiBinding 命令参数中包含对象绑定

我正在尝试使用 a<MultiBinding>将两个参数传递给我的 ViewModel 的命令,但是在让 XAML 解析器接受我的尝试时遇到问题。

考虑包含在 myUserControl中的以下 ListView,它绑定到Ticket对象集合。

各自的风格ListViewItem

ContextMenu 以及我的查询源所在的引用项目;

所以这就是我想要做的;

  • The context menu has a single item "Send ticket as notification" which, when selected, lists all the available Agentswhich can receive said notification. 这行得通。

  • 当我单击其中一个代理选项时,我希望上下文菜单项同时发送ticket从 中单击listview以显示上下文菜单的项目(这有效)和Agent我从上下文菜单中选择的项目。我已经完成了一半MultiBinding

    /li>

现在,尽管上下文菜单的实际设置对我来说似乎有些复杂。MultiBinding参数之一应该是绑定到单击的实际项目的实际规范ContextMenu.MenuItem似乎是一个非常简单的命令。上下文菜单正确列出了所有代理,因此我认为只需要求将此当前对象作为命令参数发送,很简单。我也试过;

但是所有发送到参数转换器的是UnsetValue

感谢您的时间和您可能有的任何建议。

0 投票
1 回答
681 浏览

.net - 多重绑定数据网格选定项不起作用

我使用以下内容从数据网格中获取所选项目,并且工作正常。

现在我有一个命令需要来自 2 个数据网格的 2 个选定项列表。所以我尝试了以下多重绑定:

我的converter.Convert()方法在初始化时调用一次,但CommandParameter始终为空。也许我错过了一些东西......

编辑: grdDruckVersand 和 grdAusgabe 是 DataGrids

转换器:

0 投票
1 回答
1556 浏览

wpf - 使用 MultiBinding 更改 WPF DataGrid 单元格的前景色时出现问题

给定特定单元格内容的值,我正在尝试更改 DataGridCell 的前景色,而不是整行。例如,如果单元格的日期值已过期,那么我想将前景设置为红色。我几乎是在使用 MultiBinding 从数据网格中提取两个值并通过实现 IMultiValueConverter 的值转换器对其进行解析。

简而言之,无需进入转换器本身,我编写了以下 XAML:

然后我添加到我的 Datagrid : CellStyle="{StaticResource CellHighlighterStyle}"

现在,我的转换器将第一个Value[0]属性视为 DataGridCell,但第二个值是某种组成的 DependencyProperty。当我真正想要获取该行时,它就像创建了一个默认或虚拟属性。事实上,我真的很想获得与该行关联的类对象。我的 DataGrid 绑定到List<of a class object>.

我确信我在几英寸之外。如何解析 DataGrid Row 以便我可以提取字段的值,或绑定到该行或列本身的对象以便我返回我想要返回的颜色?或者,有没有更好的方法让我有选择地更改给定值的 DataGrid 单元格的属性?

0 投票
3 回答
348 浏览

c# - 为什么要使用多绑定转换器?

难道我不能只使用一个绑定转换器并作为 DataContext 中的参数传递,然后从那里选择我想使用的属性吗?