如何在多重绑定中获取父值
Posted
技术标签:
【中文标题】如何在多重绑定中获取父值【英文标题】:How to get a parent value in multibinding 【发布时间】:2012-03-31 15:08:11 【问题描述】:我正在使用dataTemplate
。这是模板:
<ItemsControl ItemsSource="Binding RAM.Partitions">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="Binding Position, StringFormat=0k"/>
<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】:所以您正试图在您的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 的 Ram.Size
属性。
【讨论】:
以上是关于如何在多重绑定中获取父值的主要内容,如果未能解决你的问题,请参考以下文章