}
}
+ internal void OnSelectedIndexChanged ()
+ {
+ if (IsHandleCreated)
+ OnSelectedIndexChanged (EventArgs.Empty);
+ }
+
internal int TotalWidth {
get { return Math.Max (this.Width, this.layout_wd); }
}
protected override void CreateHandle ()
{
base.CreateHandle ();
- if (SelectedItems.Count > 0)
+ for (int i = 0; i < SelectedItems.Count; i++)
OnSelectedIndexChanged (EventArgs.Empty);
}
if (!list.Contains (item))
return;
+ bool selection_changed = owner.SelectedItems.Contains (item);
list.Remove (item);
OnChange ();
owner.Redraw (true);
+ if (selection_changed)
+ owner.OnSelectedIndexChanged (EventArgs.Empty);
}
public virtual void RemoveAt (int index)
{
if (index < 0 || index >= Count)
throw new ArgumentOutOfRangeException ("index");
+ bool selection_changed = owner.SelectedIndices.Contains (index);
list.RemoveAt (index);
OnChange ();
owner.Redraw (false);
+ if (selection_changed)
+ owner.OnSelectedIndexChanged (EventArgs.Empty);
}
#endregion // Public Methods