多绑定中如何获取父级值

12
我正在使用 dataTemplate。这是该模板内容:
   <ItemsControl ItemsSource="{Binding RAM.Partitions}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <TextBlock Text="{Binding Position, StringFormat={}{0}k}"/>
                    <Grid Grid.Column="1">
                        <Border>
                            <Border.Height>
                                <MultiBinding Converter="{StaticResource MultiplyConverter}">
                                    <Binding ElementName="LayoutRoot" Path="ActualHeight"/>
                                    <Binding Path="Size" />
                                    <Binding Path="RAM.Size" />
                                </MultiBinding>
                            </Border.Height>
                        </Border>
                    </Grid>
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

你能看到这条线吗?

<Binding Path="RAM.Size" />

那行代码会抛出异常,原因可能是 RAM.Size 是从父元素继承的。我该如何获取这个值?

先谢过了!

1个回答

39

所以你正在尝试从与你的ItemsControl获取其ItemsSource的同一对象中获取RAM.Size值?

看看这是否可行:

<MultiBinding Converter="{StaticResource MultiplyConverter}"> 
    <Binding ElementName="LayoutRoot" Path="ActualHeight"/> 
    <Binding Path="Size" /> 
    <Binding Path="DataContext.RAM.Size"
        RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}" /> 
</MultiBinding>

因此,绑定通过可视树向上到达ItemsControl,然后绑定到其DataContext的属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接