次の方法で共有


ListViewGroupCollection メソッドが新しい InvalidOperationException をスローする

以前は、仮想モードの InvalidOperationExceptionListViewGroupCollection メソッドが呼び出され、"ListView" が既に作成されていた場合に、Handle がスローされました。 .NET 6 以降では、これらの ListViewGroupCollection メソッドは、 ListView が仮想モードであるかどうかを確認するようになりました。 その場合は、よりわかりやすいメッセージを含む InvalidOperationException を発生させます。

以前の動作

ListViewGroupListViewを追加する次のコードについて考えてみましょう。

ListViewGroup group1 = new ListViewGroup
{
    Header = "CollapsibleGroup1",
    CollapsedState = ListViewGroupCollapsedState.Expanded
};

listView.Groups.Add(group1);

このコードでは、次のメッセージを含む InvalidOperationException が生成されました。

ListView が仮想モードの場合、列挙子を使用して ListView 項目コレクションを列挙したり、GetEnumerator を呼び出したりすることはできません。 代わりに ListView 項目インデクサーを使用し、インデックス値で項目にアクセスします。

新しい動作

前の動作セクションと同じコードで、次のメッセージを含むInvalidOperationExceptionが生成されます。

ListView が仮想モードの場合、ListView グループ コレクションにグループを追加することはできません。

カテゴリの変更

この変更は バイナリの互換性に影響します。

変更の理由

新しい InvalidOperationException メッセージの理解が深くなります。 さらに、ListViewGroupが作成される前に、開発者がListViewHandleを追加できる回避策を終了します。

導入されたバージョン

.NET 6 RC 2

  • 必要に応じて、仮想モードのListViewGroupListViewを追加しないようにコードを確認し、更新します。
  • コードが InvalidOperationException 例外を処理する場合は、 ListView が仮想モードであることを反映するようにメッセージを更新する必要があります。

影響を受ける API