Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs')
-rw-r--r--mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs31
1 files changed, 18 insertions, 13 deletions
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs
index 70ec71df299..551f6584f1e 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs
@@ -911,18 +911,23 @@ namespace System.Windows.Forms
}
- void SelectItem (ListViewItem item)
+ internal void UpdateSelection (ListViewItem item)
{
- if (!CanMultiselect && SelectedItems.Count > 0) {
- SelectedItems.Clear ();
- SelectedIndices.list.Clear ();
- }
+ if (item.Selected) {
- if (!SelectedItems.Contains (item)) {
- SelectedItems.list.Add (item);
- SelectedIndices.list.Add (item.Index);
+ if (!CanMultiselect && SelectedItems.Count > 0) {
+ SelectedItems.Clear ();
+ SelectedIndices.list.Clear ();
+ }
+
+ if (!SelectedItems.Contains (item)) {
+ SelectedItems.list.Add (item);
+ SelectedIndices.list.Add (item.Index);
+ }
+ } else {
+ SelectedItems.list.Remove (item);
+ SelectedIndices.list.Remove (item.Index);
}
- item.Selected = true;
}
private bool KeySearchString (KeyEventArgs ke)
@@ -940,7 +945,7 @@ namespace System.Windows.Forms
if (CultureInfo.CurrentCulture.CompareInfo.IsPrefix (Items[i].Text, keysearch_text,
CompareOptions.IgnoreCase)) {
SetFocusedItem (Items [i]);
- SelectItem (items [i]);
+ items [i].Selected = true;
EnsureVisible (i);
break;
}
@@ -1040,7 +1045,7 @@ namespace System.Windows.Forms
}
if (index != -1) {
- SelectItem (items [index]);
+ items [index].Selected = true;
SetFocusedItem (items [index]);
EnsureVisible (index);
}
@@ -1136,7 +1141,7 @@ namespace System.Windows.Forms
if (clicked_item != null) {
bool changed = !clicked_item.Selected;
- SelectItem (clicked_item);
+ clicked_item.Selected = true;;
// Only Raise the event if the selected item has changed
if (changed)
@@ -1169,7 +1174,7 @@ namespace System.Windows.Forms
ListViewItem item = this.GetItemAt (hit.X, hit.Y);
if (item != null) {
- SelectItem (item);
+ item.Selected = true;
// Raise the event
this.OnSelectedIndexChanged (new EventArgs ());
}