ListViewGroupCollection 方法擲回新的 InvalidOperationException
先前若在虛擬模式中,對 ListView 叫用 ListViewGroupCollection 方法,並已建立了 Handle,擲回 InvalidOperationException。 從 .NET 6 開始,這些 ListViewGroupCollection 方法現在只會檢查 ListView 是否處於虛擬模式。 若是,會擲回 InvalidOperationException,並附上描述更多的訊息。
先前的行為
請考慮使用下列程式碼,將 ListViewGroup 違新增至 ListView:
ListViewGroup group1 = new ListViewGroup
{
Header = "CollapsibleGroup1",
CollapsedState = ListViewGroupCollapsedState.Expanded
};
listView.Groups.Add(group1);
此程式碼會產生 InvalidOperationException,並附上下列訊息:
當 ListView 處於虛擬模式時,您無法透過列舉程式或呼叫 GetEnumerator 來列舉收集到的所有 ListView 項目。 請改用 ListView 項目索引子,並使用索引值存取項目。
新的行為
來自先前的行為一節中的同一組程式碼,會產生 InvalidOperationException,並附上下列訊息:
當 ListView 處於虛擬模式時,您無法將群組新增至 ListView 群組集合。
變更類別
此變更會影響二進位相容性。
變更原因
新的 InvalidOperationException 訊息一方面更容易理解, 一方面也不再允許開發人員在建立 Handle 之前,將 ListViewGroup 新增 ListView 的因應措施。
導入的版本
.NET 6 RC 2
建議的動作
- 如有必要,請檢查及更新您的程式碼,使其不會在虛擬模式中時,將 ListViewGroup 新增至 ListView。
- 您的程式碼若會處理 InvalidOperationException 例外狀況,可能需要更新訊息,反映 ListView 處於虛擬模式。