在MultiBinding
中,如果DataContext设置为VM1
,并且C
是其属性,是否有可能对第二个不同的DataContext进行第二次绑定,例如VM2
,并将其绑定到D
属性在VM2
中?
<MultiBinding Converter="{StaticResource UnitConverter}">
<Binding Path="C"/>
<Binding Path="D"/>
</MultiBinding>
快速回答,是的!例如,如果您有一个带有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>
我希望这会有所帮助
对不起。确切答案是不可能