我正在使用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
来自父元素。我怎么能得到那个价值?
提前致谢!
答案 0 :(得分:38)
因此,您尝试获取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>
值?
看看是否有效:
Ram.Size
因此,绑定通过可视化树进入ItemsControl,然后绑定到其DataContext的{{1}}属性。