0

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);
4

0 に答える 0