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)}"