Wpf 基于其他控件的高度设置控件的最大高度(使用CalcBinding)

Wpf 基于其他控件的高度设置控件的最大高度(使用CalcBinding),wpf,xaml,element-binding,calcbinding,Wpf,Xaml,Element Binding,Calcbinding,我有一个TextBlock和三个Grids,包含在另一个Grid中。每个内部网格在第一行包含一个TextBlock,在第二行包含一个DataGrid。数据网格中的数据具有可变数量的记录 <Grid Name="gridOuter"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> // <-- x3

我有一个
TextBlock
和三个
Grid
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>
CalcBinding是否可以这样做?如果可以,正确的语法是什么?如果不可以,是否可以采用其他方式

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