FlipView中RowDefinition的绑定与FlipView本身的绑定不同

时间:2015-04-23 09:31:25

标签: c# wpf xaml

  

“MyGrid”有DataContext(在代码后面分配)有三个公开   属性:

     
      
  • '图像'
  •   
  • 'H1'
  •   
  • 'H2'
  •   

以下代码的问题是,对'h1'和'h2'的绑定设置为'Images'集合的元素,但它们应设置为'MyGrid'的绑定。

我的代码

<Grid x:Name="MyGrid">
    <FlipView ItemsSource="{Binding Images}">
        <FlipView.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="{Binding h1}"></RowDefinition>
                        <RowDefinition Height="{Binding h2}"></RowDefinition>
                    </Grid.RowDefinitions>

                    <Image Grid.Row="0" Source="{Binding}"></Image>
                    <TextBlock Grid.Row="1" Text="AAA"></TextBlock>
                </Grid>
            </DataTemplate>
        </FlipView.ItemTemplate>
    </FlipView>
</Grid>

我应该如何更改'h1'和'h2'绑定?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用ElementName指定绑定源:

 <Grid x:Name="MyGrid">
        <FlipView ItemsSource="{Binding Images}">
            <FlipView.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="{Binding ElementName=MyGrid, Path=DataContext.h1}"></RowDefinition>
                            <RowDefinition Height="{Binding ElementName=MyGrid, Path=DataContext.h2}"></RowDefinition>
                        </Grid.RowDefinitions>

                        <Image Grid.Row="0"
                               Source="{Binding}"></Image>
                        <TextBlock Grid.Row="1"
                                   Text="AAA"></TextBlock>
                    </Grid>
                </DataTemplate>
            </FlipView.ItemTemplate>
        </FlipView>
    </Grid>