【问题标题】: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={}{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 来自父元素。我怎样才能得到那个值?

提前致谢!

【问题讨论】:

    标签: c# wpf data-binding binding datatemplate


    【解决方案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 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 2016-08-17
      • 2012-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多