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

Vah*_*hid 1 data-binding wpf datacontext xaml multibinding

在一个MultiBinding如果DataContext设置为VM1C是的一个属性,是有可能做第二结合不同的DataContext像VM2并将其绑定到D属性中VM2

<MultiBinding Converter="{StaticResource UnitConverter}">
        <Binding Path="C"/>
        <Binding Path="D"/>
</MultiBinding>
Run Code Online (Sandbox Code Playgroud)

Car*_*rdh 5

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

<MultiBinding Converter="{StaticResource UnitConverter}">
    <Binding Path="DataContext.D" RelativeSource={RelativeSource Mode=FindAncestor, TargetType=Grid/>
    <Binding Path="C"/>
</MultiBinding>
Run Code Online (Sandbox Code Playgroud)

希望这对您有所帮助

这个问题可能也有帮助:如何在多重绑定中获取父值