我正在使用 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
来自父元素。我如何获得该值(value)?
提前致谢!
最佳答案
因此,您正试图获取 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>
因此绑定(bind)通过可视化树上升到 ItemsControl,然后绑定(bind)到其 DataContext 的 Ram.Size
属性。
关于c# - 如何在多重绑定(bind)中获取父值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9714134/