画像のリストにバインドされた非常に単純な WPF データグリッド。仕切り (またはメイン ウィンドウ自体) を使用して列のサイズを変更すると、CPU は 100% になり、アプリは配置/サイズ変更の無限ループに入り、ウィンドウの内容が前後にジャンプし、ユーザー入力が処理されなくなります (ロックされます)。
データグリッドは次のように定義されます。
<DataGrid ItemsSource="{Binding ImageList}" AutoGenerateColumns="False" x:Name="ImageGrid">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Image 1" Width="40*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding ImagePath}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="EmptyText" />
</DataGrid.Columns>
</DataGrid>
- 問題の動画はこちら(エンコードの悪さはご容赦ください)。
- 私の非常に単純化されたテスト プロジェクトは hereです。
- Microsoft Connect here で説明されているこのバグだと思います。
私が試したこと:
- DataGrid を継承し、グリッドの Arrange/Measure をオーバーライドします。
- ウィンドウの配置/測定をオーバーライドします。
- グリッドのスクロールバーを微調整し、それらをオフにして、さまざまなオプションを設定します。
私ができないこと:
- .Net 4.5 へのアップグレードは、このプロジェクトのオプションではありません。
- 列を削除すると、グリッドにポイントがなくなります。
.Net 4.0 でこの動作を回避する方法はありますか? そうでない場合は、グリッドの代わりに別のものを使用するなどの回避策を検討する必要がありますが、スタイリングに何年も費やしており、その作業を失いたくありません.
前もって感謝します