我有一个TextBlock
和三个Grid
s,包含在另一个 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 是否可能,如果可以,正确的语法是什么 - 如果没有,是否有可能以其他方式?