IMul​​tiValueConverter是否适用于UWP

时间:2016-06-23 13:29:31

标签: wpf uwp imultivalueconverter

我正在将WPF转换为UWP,并使用了多个IMultiValueConverters。我找不到IMultiValueConverter的任何参考。可以在UWP中找到吗?如果没有,是否还有替代方案?

4 个答案:

答案 0 :(得分:3)

UWP中没有多个转换器。

如果没有多个转换器,您可以绑定到ViewModel中的单个属性。

1单个属性应考虑视图模型中的多个属性。

让他们称之为源属性

2如果对源属性进行任何更改,则应在单个属性上引发PropertyChanged事件。

此致

答案 1 :(得分:2)

这是一个非常好的选择。在Cimbalino工具包(github上的开源)中,有一个已移植到UWP的MultiBind行为

详细信息:https://www.pedrolamas.com/2013/05/17/cimbalino-windows-phone-toolkit-multibindingbehavior/ 工具包代码:https://github.com/Cimbalino/Cimbalino-Toolkit

它也可以作为nuget使用,我个人用它创建每个UWP应用程序,因为它有很多很棒的功能

答案 2 :(得分:1)

绑定到多个值的一种非常简单的方法是使用x:Bind with a function。例如,

<TextBlock Text="{x:Bind local:Helper.FormatName(Id, Name)}" />

<TextBlock Text="{x:Bind local:Helper.FormatTotal(ViewModel.SelectedWidget.Cost, ViewModel.Quantity, ViewModel.Bundles)}" />

在这两个示例中,该函数都是静态函数,但是也可以在视图模型背后或其中的代码中定义该函数。

<TextBlock Text="{x:Bind CalculateResult(ViewModel.Widget, ViewModel.Foo)}" />
<TextBlock Text="{x:Bind ViewModel.FormatResult(ViewModel.Widget, ViewModel.Foo)}" />

您可以传递包含多个属性的单个对象,而不是传递单个值。

<TextBlock Text="{x:Bind local:Helper.FormatResult(ViewModel.Widget)}" />

函数绑定非常灵活,通常可以代替转换器使用,从而创建更简单,更易读的代码。

<TextBlock Background="{x:Bind local:Helper.GetColor(ViewModel.Widget)}" />

通过添加BindBack函数,函数绑定也可以与两种方式结合使用。

<TextBox Text="{x:Bind ViewModel.FormatWidget(ViewModel.Widget), BindBack=ViewModel.UpdateWidget}" />

答案 3 :(得分:0)

没有IMultiValueConverter,您可以使用依赖属性来实现