天天看點

duilib 修複CTreeViewUI複選功能判斷不準确的bug

        CTreeViewUI裡面自帶了複選的功能,但是複選功能存在bug:

        1)當一個分組下面存在子項時,子項被手動全選後,分組的複選框沒有自動變為選中狀态

duilib 修複CTreeViewUI複選功能判斷不準确的bug

        2)當一個分組下面存在子項時,當所有子項都取消選中狀态時,分組的複選框還是選中狀态

duilib 修複CTreeViewUI複選功能判斷不準确的bug

        分組的CTreeNodeUI控件應該自動判斷是否為選中狀态,bug被修複後的效果如下:

duilib 修複CTreeViewUI複選功能判斷不準确的bug

修複過程:

       當某個複選框被單擊後會觸發CTreeViewUI控件的OnCheckBoxChanged函數,這時應該在這裡做出判斷,來決定分組的選中狀态,為此我給CTreeNodeUI控件增加了IsAllChildChecked函數。

      修改後的OnCheckBoxChanged函數如下:

        當某個複選框被單擊後,去通知他的父控件,讓父控件判斷是否應該是選中狀态。為CTreeNodeUI控件增加的IsAllChildChecked函數如下:

總結:

      bug的修複代碼已經送出到我自己的Duilib庫。

  Redrain  2014.12.30