如何在multibinding中获取父值

Dar*_*Zon 13 c# data-binding wpf binding datatemplate

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

你能看到这条线吗?

<Binding Path="RAM.Size" />
Run Code Online (Sandbox Code Playgroud)

该行引发了一个异常,它应该是因为RAM.Size来自父元素.我怎么能得到那个价值?

提前致谢!

Mat*_*ton 40

所以,你试图去的RAM.Size,你对同一个对象的值ItemsControl越来越它ItemsSource的呢?

看看这是否有效:

<MultiBinding Converter="{StaticResource MultiplyConverter}"> 
    <Binding ElementName="LayoutRoot" Path="ActualHeight"/> 
    <Binding Path="Size" /> 
    <Binding Path="DataContext.RAM.Size"
        RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}" /> 
</MultiBinding>
Run Code Online (Sandbox Code Playgroud)

因此,绑定通过可视树进入ItemsControl,然后绑定到Ram.Size其DataContext 的属性.