問題がある2つのデータグリッドがあります。データが入力されるとすぐに、高さは完全に狂ってしまいます。
次のサンプル形式を取得しました:
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- some control on row 0 -->
<Grid Grid.Row="1" HorizontalAlignment="Stretch" Margin="0,2,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="0.66*"/>
<RowDefinition Height="0.33*" />
</Grid.RowDefinitions>
<DataGrid Name="grdSeacrhData" Grid.Row="0" />
<DataGrid Name="grdSelectData" Grid.Row="1" />
</Grid>
</Grid>
したがって、メイン グリッドの行のサイズは、最初の行にまだ高さが不明なコントロールがたくさんあり、最も重要な部分であるためです。
2 行目の目標は、2 つのデータグリッドを最初に少し大きくして上からの結果を表示し、2 つ目のデータグリッドを小さくして、最初のデータグリッドからの 1 つまたは複数の選択の洗練された結果を表示することです。
何も触れずにフォームを開くと、美しく機能します。ただし、最初のデータグリッド「grdSeacrhData」が 200 ~ 300 レコードの順序で内部に表示されるデータを取得するとすぐに、高さがウィンドウ サイズの外側に引き伸ばされます。
垂直方向の配置と垂直方向のコンテンツの配置を試し、垂直スクロールを可視、自動に設定し、スタックパネル、ドックパネル、キャンバス、スクロールビューアーに入れてみました...
私は考え違いです。私が知っているのは、データグリッドの高さまたは最大高さを設定すると機能することだけです。設定されていない場合、データグリッド項目がデータグリッドの高さを伸ばすのを防ぐ方法はありますか?
編集#1:
OK、結果を確認するためだけにWPFで何か他のことを試しましたが、それも機能しません。ここにいくつかの詳細:
私は100の自動3行目の高さの3行の1行目の高さまたは100の2行目の高さで1つのグリッドを作成しました
中央の行にデータグリッドを配置しましたが、完全に機能します。データを追加するとすぐに画面から消えます。
データグリッドにデータがない場合、ウィンドウを引き伸ばします。一番上の行も100にとどまり、一番下の行もちょうど調整されます。
ここで私がWinformsで試したこと
データグリッドに固定された上部ボタンを左右に配置します。上の値 = 100 および下の値 = form.height - 100
完璧に機能するフォームを伸ばします。同じxmlデータを追加しましたが、フォーマットはそのままでした
したがって、私がやろうとしているのは、「魔法のユニコーンのアイデア」だけではなく、実際にはwinformsで非常に簡単に実行できるようですが、winformsを使用したくないので、WPFにとどまりたいです。どうすればそれを複製できますか?
キックのために、ASP.Netデータグリッドをテストしたところ、winformテストのように動作するので、確実に可能です。