private void OnCallStateX(CallManager mgr, CallStateEvent cs) { ListViewItem item; if (!lv.Items.ContainsKey(cs.PbxId)) { item = lv.Items.Add(cs.PbxId, cs.From, 0); item.Tag = cs; item.SubItems.Add(cs.CallId); item.SubItems.Add(cs.PbxId); item.SubItems.Add(cs.State.ToString()); item.SubItems.Add(cs.From); item.SubItems.Add(cs.Destination); } else { item = lv.Items[cs.PbxId]; } item.SubItems[1].Text = cs.CallId; item.SubItems[3].Text = cs.State.ToString(); item.SubItems[4].Text = cs.Destination; if (cs.State == CallState.Disconnected) { lv.Items.RemoveByKey(cs.PbxId); } }
private void OnCallState(CallManager mgr, CallStateEvent cs) { if (lv.InvokeRequired) { BeginInvoke((MethodInvoker) delegate { OnCallStateX(mgr, cs); }); } else { OnCallStateX(mgr, cs); } }