2015-04-23 52 views
0

“MyGrid” 具有DataContext具有三个公共 性能(分配在后面代码):在FlipView RowDefinition的结合不同然后FlipView本身的结合

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

问题用下面的代码是宾迪将'h1'和'h2'的ngs设置为'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

使用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>