Height
コードで別のグリッドにバインドするグリッドが 1 つActualHeight
あります。この部分は問題ありません。しかし、特定のユーザー操作の後、このバインディングを削除し、グリッドを通常どおりに動作させ、そのコンテンツに合わせてサイズを変更したいと考えています。
この「ユーザー インタラクション」の間、StackPanel にコンテンツを追加すると、バインドされたグリッドのコンテンツの高さが大きくなります。
<Grid x:Name="grid1">
<StackPanel>
....
</StackPanel>
</Grid>
<Grid x:Name="grid2">
<StackPanel>
....
</StackPanel>
</Grid>
コードビハインド:
Binding HeightBinding = new Binding("ActualHeight");
HeightBinding.Source = grid2;
grid1.SetBinding(FrameworkElement.HeightProperty, HeightBinding);
したがって、バインディングを削除すると、グリッドが通常に戻り、サイズも大きくなると予想されます。これはそうではありません。次のことを試しましたが、成功しませんでした:
1) BindingOperations.ClearBinding(grid1, Grid.HeightProperty);
2) grid1.Height = Double.NaN;
grid1.InvalidateMeasure();
3) Binding binding = new Binding();
grid1.SetBinding(Grid.HeightProperty, binding );
4) BindingOperations.ClearAllBindings(grid1);