KeePass.UI.CheckedLVItemDXList.OnItemCheckedChanged C# (CSharp) Method

OnItemCheckedChanged() private method

private OnItemCheckedChanged ( object sender, System.Windows.Forms.ItemCheckedEventArgs e ) : void
sender object
e System.Windows.Forms.ItemCheckedEventArgs
return void
        private void OnItemCheckedChanged(object sender, ItemCheckedEventArgs e)
        {
            ListViewItem lvi = e.Item;
            if(lvi == null) { Debug.Assert(false); return; }

            bool bChecked = lvi.Checked;

            // Debug.Assert(m_vListViewItems.IndexOf(lvi) >= 0);
            foreach(CheckItemLink cl in m_vLinks)
            {
                if(cl.Source == lvi)
                {
                    if(cl.Target.Index < 0) continue;

                    if((cl.Type == CheckItemLinkType.CheckedChecked) &&
                        bChecked && !cl.Target.Checked)
                        cl.Target.Checked = true;
                    else if((cl.Type == CheckItemLinkType.UncheckedUnchecked) &&
                        !bChecked && cl.Target.Checked)
                        cl.Target.Checked = false;
                    else if((cl.Type == CheckItemLinkType.CheckedUnchecked) &&
                        bChecked && cl.Target.Checked)
                        cl.Target.Checked = false;
                    else if((cl.Type == CheckItemLinkType.UncheckedChecked) &&
                        !bChecked && !cl.Target.Checked)
                        cl.Target.Checked = true;
                }
            }
        }