问题标签 [imultivalueconverter]

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

wpf - 如何通过字符串作为 Propertyname 绑定属性

嗨,我想绑定到 Xaml 中的“未知”(我只得到一个字符串)属性

起初我写了一个 IValueConverter 但你不能绑定到 ConverterParameter 所以我将它重写为 IMultiValueConverter 但现在我无法弄清楚如何使用<Binding />没有 Path 或者我错了?

如果你写<TextBlock Text="{Binding}" />你会得到对象 Person 并且{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}, Path=View.Columns[0].Header}}我可以访问第一行的标题文本

现在我只需要将两者结合起来就可以获得财产吗?

我的测试 Xaml 代码:

转换器:

该模型

}

更新我当前的 Multibindung

最后更新

在我的情况下,这是一个死胡同,您无法从 GridViewColumn.CellTemplate 绑定到特定的列标题值

0 投票
1 回答
3759 浏览

c# - 使用 IValueConverter 动态加载图像源

我在使用 IValueconverter 时遇到问题并动态加载行网格图像:

我想将对象的“类型”传递给转换器并加载不同的图像:

但是有问题,因为没有加载图片!

如果我静态加载,没关系:

我在 UserControl.Resources 中加载了我的转换器:

帮我!!

0 投票
1 回答
2521 浏览

wpf - 使用 MultiValueConverter 对 DataGrid 的列进行排序

我有一个使用 MultiValueConverter 的带有文本列的数据网格。转换器有 2 个值。当前项目的第一个依赖项和 TextBlock 的第二个依赖项。显示的值是我想要的。

列中显示的值是我想要的。问题是我无法按此列排序。我尝试添加类似的内容:

但我收到“找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement”。错误。我改为:

那么第一行没问题,但是第二行,我无法获取currentItem。

我尝试使用 SortEvent,但我只能添加没有任何逻辑的 SortDescription(我的转换器中有它)。

使用 multiValueConverter 时有什么方法可以对列进行排序?

0 投票
1 回答
307 浏览

wpf - 两个具有相同代码但名称不同的 IMultiValueConverter - 只有一个有效

我遇到了一个奇怪的 WPF 问题。IMultiValueConverter我的 WPF 项目引用的程序集中有两个定义。它们的代码相同,但名称不同。我已经多次清理和重建程序集,但由于某种原因,只有一个值转换器工作,而另一个给出“clr 命名空间中不存在”xaml 错误。

注意:我知道该文件位于项目引用的正确命名空间和程序集中,因为我将 dll 直接反映在 WPF 项目的 bin 文件夹中。

这种现象有什么解释吗?

0 投票
1 回答
953 浏览

c# - 使用 IMultiValueConverter 绑定 Polygon.Points?

我已经使用 IValueConverter 成功绑定了多边形的点。现在我需要使用 IMultiValueConverter。

让我先概述一下我要完成的工作,如果有人看到更好的方法,请告诉我!我可以使用 .NET 4.5 仅供参考。

我有一个包含一堆对象的数据存储。这些对象没有与之关联的任何类型的 Point/PointCollection。如果我有父母高度,我可以根据数据存储中对象的属性创建点。没有高度,我无法生成点。

我目前有一个有效的实现,但我在代码中执行了所有点计算。这会导致性能问题,因为每次父母高度发生变化时我都必须重新计算所有对象。

上代码:

还有我的哑转换器代码:

顺便说一句,这是我得到的错误:

0 投票
1 回答
337 浏览

c# - 复杂的 MultiBinding 验证

我有一个包含多个字段的表单。我还有一个“验证”按钮,它将操作数据库输入。我希望仅当用户定义了最小字段时才激活该按钮

到目前为止,这很简单,因为所有字段都是文本:

转换器是:

但现在必须考虑额外的复选框,条件应该是[任何这些复选框已选中 + 先前定义的文本字段 --> 激活验证按钮]

你知道我怎么能这样做吗?

谢谢你!

0 投票
1 回答
1803 浏览

c# - 未调用 CheckBox.IsChecked 中的 MultiBinding 转换器

如果你愿意,我有一个自定义组合框一个多选组合框,

问题是选择取决于其他集合。我尝试将 ComboBox.IsChecked 属性绑定到 MultiBinding Converter,但未调用该转换器。

转换器是,

有什么建议么?

0 投票
1 回答
1200 浏览

c# - 是否可以在 WPF MultiBinding 中同时使用转换器和 StringFormat?

我正在使用以下 MultiBinding。转换器输出一个 int,MultiBinding 的预期输出类似于“SomeText|123”。绑定和转换器工作正常,但似乎没有应用 StringFormat - 我只是得到转换器输出的 int 值。是否可以将 StringFormat 应用于 IMultiValueConverter 的输出?

谢谢!

0 投票
0 回答
333 浏览

c# - 当 Property 为 Vector3D 时绑定,这是一个结构体

我正在尝试将 3 TextBoxes(作为第一步,但实际上是 3DataGrid列)绑定到Vector3D属性的组件。但请注意,这Vector3D是一个结构,因此是值类型。

绑定的想法是能够编辑一个Vector3D属性,这样每个向量分量 X、Y、Z 都是可单独编辑的。

以下不起作用:

如果不重写我的模型以用类包装 Vector3D 结构,这是否可能?

0 投票
2 回答
190 浏览

c# - 什么是绑定到值的正确方法,同时显示在该项目上定义的预设列表中的友好名称?

遇到了一个艰难的。考虑一个由对象列表组成的 ViewModel,其中每个对象定义一个 int 值,并且其中一些对象还定义了一个 Presets 字典,该字典键控在 UI 中表示该值的“友好”字符串上。

这是一个例子......

UI 的目标是如果项目没有预设,用户可以输入他们想要的任何 int 值。但是,如果有预设,我们希望将它们限制为这些值,并将它们作为字典中的友好名称显示在 UI 中。

我们的第一次尝试是使用 TextBox 和 ComboBox,根据是否有预设来修改它们的可见性,就像这样......

...但是当我们在支持虚拟化的列表的 DataTemplate 中使用它时,组合偶尔会显示空白。我相信是因为当项目被重用并且 DataContext 发生变化时, SelectedValue 在 ItemsSource 之前更新,这意味着可能没有预设值可以匹配,因此提议的 SelectedValue 值被控件抛出,然后ItemsSource 更新,但没有选择值所以它显示空白。

我的下一个想法(无论如何我们更喜欢)是只使用一个显示预设名称但实际上绑定到 Value 的 TextBox,然后使用转换器来发挥它的魔力,让用户输入友好名称或实际值. 如果用户输入的内容不是有效值或预设值,我们只会抛出错误。如果没有预设,它只会充当值的传递。

但是,我不确定如何将预设传递给转换器。您不能在 ConverterParameter 上设置绑定以以这种方式传递它们,如果您使用多重绑定,那么我不确定如何构造“ConvertBack”调用,因为我也需要传入它们,而不是送回去了。

我认为正确的方法是在 ViewModel 中实现 UiValue ,我们只需像这样绑定到它......

...然后将转换器中的代码移动到该属性的 getter/setter 实现,或者如果没有预设,则只是传递给 Value。但是,这似乎在 ViewModel 中出现了太多的逻辑,它应该在 View 中(ala 转换器或类似的)。再说一次,也许这正是 ViewModel 的重点。我不知道。欢迎提出想法。