在WPF中多重绑定到两个不同的DataContext

问题描述 投票:1回答:2

MultiBinding中,如果DataContext设置为VM1,并且C是其属性,是否有可能对第二个不同的DataContext进行第二次绑定,例如VM2,并将其绑定到D属性在VM2中?

<MultiBinding Converter="{StaticResource UnitConverter}">
        <Binding Path="C"/>
        <Binding Path="D"/>
</MultiBinding>
wpf xaml data-binding datacontext multibinding
2个回答
5
投票

快速回答,是的!例如,如果您有一个带有Datacontext VM2的网格,并且在其中有一个带有Datacontext VM1的Stackpanel。现在,您可以使用RelativeSource通过在视觉树上移动来获得正确的Datacontext。我不在Windows笔记本电脑的atm上,但它应该看起来像这样。

<MultiBinding Converter="{StaticResource UnitConverter}">
    <Binding Path="DataContext.D" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=Grid}"/>
    <Binding Path="C"/>
</MultiBinding>

我希望这会有所帮助

此问题可能也有帮助:How to get a parent value in multibinding


2
投票

对不起。确切答案是不可能

© www.soinside.com 2019 - 2024. All rights reserved.