次の方法で共有


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

以前は、仮想モードの ListViewListViewGroupCollection メソッドが呼び出され、"かつ" Handle が既に作成されていた場合に、InvalidOperationException がスローされました。 .NET 6 より、これらの ListViewGroupCollection メソッドでは、ListView が仮想モードであるかどうかのみがチェックされるようになりました。 その場合は、よりわかりやすいメッセージで InvalidOperationException がスローされます。

以前の動作

ListViewListViewGroup を追加する次のコードを考えてみます。

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

listView.Groups.Add(group1);

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

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

新しい動作

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

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

カテゴリの変更

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

変更理由

新しい InvalidOperationException メッセージはよりわかりやすくなっています。 さらに、Handle が作成される前に開発者が ListViewListViewGroup を追加できるという回避策も無効になります。

導入されたバージョン

.NET 6 RC 2

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

影響を受ける API