ListViewGroupCollection メソッドが新しい InvalidOperationException をスローする
以前は、仮想モードの ListView で ListViewGroupCollection メソッドが呼び出され、"かつ" Handle が既に作成されていた場合に、InvalidOperationException がスローされました。 .NET 6 より、これらの ListViewGroupCollection メソッドでは、ListView が仮想モードであるかどうかのみがチェックされるようになりました。 その場合は、よりわかりやすいメッセージで InvalidOperationException がスローされます。
以前の動作
ListView に ListViewGroup を追加する次のコードを考えてみます。
ListViewGroup group1 = new ListViewGroup
{
Header = "CollapsibleGroup1",
CollapsedState = ListViewGroupCollapsedState.Expanded
};
listView.Groups.Add(group1);
このコードでは、次のメッセージで InvalidOperationException が生成されました。
ListView が仮想モードであるとき、列挙子または GetEnumerator 呼び出しを使用して、ListView 項目のコレクションから列挙することはできません。 代わりに、ListView 項目のインデクサーを使用して、インデックスの値で項目にアクセスしてください。
新しい動作
「以前の動作」セクションの同じコードでは、次のメッセージで InvalidOperationException が生成されます。
ListView が仮想モードにある場合は、ListView グループ コレクションにグループを追加することはできません。
カテゴリの変更
この変更はバイナリ互換性に影響を与えます。
変更理由
新しい InvalidOperationException メッセージはよりわかりやすくなっています。 さらに、Handle が作成される前に開発者が ListView に ListViewGroup を追加できるという回避策も無効になります。
導入されたバージョン
.NET 6 RC 2
推奨される操作
- コードを確認し、必要に応じて更新して、仮想モードの ListView に ListViewGroup が追加されないようにします。
- コードによって InvalidOperationException 例外が処理される場合は、ListView が仮想モードであることを反映するようにメッセージを更新する必要がある場合があります。
影響を受ける API
.NET