1

我有一个TextBlock和三个Grids,包含在另一个 s 中Grid。每个内部网格TextBlock在第一行和DataGrid第二行中都包含一个。数据网格中的数据具有可变数量的记录。

<Grid Name="gridOuter">
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />  // <-- x3 
    ...
  </Grid.RowDefinitions>

  <TextBlock Grid.Row="0" Text="Contents" />

  <Grid Grid.Row="1" Name="innerOne" MinHeight="50" MaxHeight="???">
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <TextBlock Grid.Row="0">Heading One</TextBlock>
    <ScrollViewer Grid.Row="1">
      <DataGrid Name="dataGridOne">
        <DataGridColumns> 
          <DataGridTextColumn Header="Title" Binding="{Title}" /> 
          <DataGridTextColumn Header="Description" Binding="{Description}" /> 
        <DataGridColumns> 
      </DataGrid>
    </ScrollViewer>
  </Grid>
  ...
  <!-- x2 more with Grids named innerTwo and innerThree, with contained
       DataGrids named dataGridTwo and dataGridThree, respectively
  -->

</Grid>

我希望将MaxHeight每个内部网格的 设置为等于ActualHeight外部网格的 减去MinHeight其他两个内部网格的 s 的总和。

我正在使用CalcBinding,但我对任何其他解决方案持开放态度。

我希望我可以做类似的事情:

MaxHeight="{cb:Binding ActualHeight, ElementName=gridOuter
         - (cb:Binding MinHeight, ElementName=dataGridTwo 
           + cb:Binding MinHeight, ElementName=dataGridThree)}"

CalcBinding 是否可能,如果可以,正确的语法是什么 - 如果没有,是否有可能以其他方式?

4

0 回答 0