我正在将WPF
转换为UWP
,并且使用了许多IMultiValueConverters
。我找不到IMultiValueConverter
的任何参考。它在UWP
中可用吗?如果没有,如果有替代方案?
与多个值结合的一种非常简单的方法是使用x:与函数绑定。例如,
<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)}" />
函数绑定也可以通过添加绑定函数将两种方式绑定使用。
<TextBox Text="{x:Bind ViewModel.FormatWidget(ViewModel.Widget), BindBack=ViewModel.UpdateWidget}" />
UWP中没有多个转换器。
没有多个转换器,您可以绑定到ViewModel中的单个属性。
1,单个属性应考虑到视图模型的多个属性。
让我们称它们为源属性
2如果对源属性进行了任何更改,则应在单个属性上提出属性换事事件。
问候
有一个很好的选择。在Cimbalino Toolkit(GitHub上的开源)中,有一个多接口行为已移植到UWP
详细信息:https://www.pedrolamas.com/2013/05/17/cimbalino-windows-photh-phone-toolkit-multibindingbehavior/工具包代码:https://github.com/cimbalino/cimbalino-toolkit
它也可以作为nuget提供,我亲自使用它创建了每个UWP应用程序,因为它具有许多出色的功能