天天看點

WPF TabControl Unload倆次的解決方案

WPF中,有些控件會多次觸發Unload,有點莫名其妙~

Unload的多次觸發

TabControl的内容,我是這麼設定的:

WPF TabControl Unload倆次的解決方案

  在TabItem的CacheSettingView中,監聽Loaded/Unloaded事件。

  1. 當視窗加載時,觸發一次Loaded
  2. 不選中TabItem,并關閉視窗,觸發一次Unloaded
  3. 但是,如果選中相應的Tab并顯示了CacheSettingView内容後,再關閉視窗,會觸發倆次Unloaded

 原因:倆次Unloaded,分别是由TabControl和TabItem觸發的。

值得注意的是,切換Tab也會造成TabItem内控件Loaded和Unload事件的頻繁調用

觸發多次Unload的詳細情況,可以參考同僚大佬的部落格《

Why Unload Twice

 Unload多次觸發的解決方案

如何解決?你可以放棄TabControl,添加ListBox重寫樣式模闆,也可以按照如下方案修改:

WPF TabControl Unload倆次的解決方案

右側的控件内容是否顯示,直接綁定TabItem的選中狀态。方案很簡單,隻是為了mark一下,以後自己友善查詢~

當然,你也可以将TabItem改為RadioButton等

作者:

唐宋元明清2188

出處:

http://www.cnblogs.com/kybs0/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連接配接,否則保留追究法律責任的權利。