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;
}
}
}