UWP中的替代方案,如WPF中的多绑定?

时间:2016-10-14 16:08:16

标签: uwp uwp-xaml

xaml新手。所以我有一种情况,我使用listview来填充一个集合。数据模板的属性需要绑定到集合项的两个或多个属性。

我看到几个解决方案在我的转换器中添加依赖属性并将它们绑定在页面资源中,最后将其作为数据模板中另一个绑定的一部分添加。但我不知道如何在页面资源中引用我的集合项的属性!!

对此或其他替代品的任何解决方案?

2 个答案:

答案 0 :(得分:0)

您可以绑定到集合项本身而不是它的离散属性,然后使用转换器根据您感兴趣的集合项的值提取和返回值。基本上只需使转换器更智能

这对于双向绑定不起作用,但是再次,MultiBinding也没有。

答案 1 :(得分:0)

您可以尝试使用Cimbalino Toolkit中的MultiBindingBehavior。它在WPF中提供了与MultiBinding类似的功能:

<TextBlock TextAlignment="Center"
        Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2">
    <interactivity:Interaction.Behaviors>
        <behaviors:MultiBindingBehavior PropertyName="Text" 
                Converter="{StaticResource StringFormatConverter}" 
                ConverterParameter="Copy {0} to {1}">
            <behaviors:MultiBindingItem 
                    Value="{Binding SelectedSourceItem}"/>
            <behaviors:MultiBindingItem 
                    Value="{Binding SelectedDestinationItem}"/>
        </behaviors:MultiBindingBehavior>
    </interactivity:Interaction.Behaviors>
</TextBlock>

由于UWP中没有IMultiValueConverter,因此Cimbalino提供MultiValueConverterBase作为替代品,签名非常相似。

有关详情,请查看sample on GitHubmy blogpost on the subject