Reduced repeat of ItemSelectedChanged events

This commit is contained in:
Rich 2009-05-05 20:50:28 +00:00
parent 37b1238f56
commit 7b0b0f25e3

View File

@ -76,6 +76,7 @@ namespace Volian.Controls.Library
{ {
if (ItemClick != null) ItemClick(sender, args); if (ItemClick != null) ItemClick(sender, args);
} }
private bool ItemSelectionChangeShown = false; // This keeps OnItemSelectedChanged from being called twice when an item is selected.
/// <summary> /// <summary>
/// Occurs when the selected StepItem changes /// Occurs when the selected StepItem changes
/// </summary> /// </summary>
@ -87,6 +88,8 @@ namespace Volian.Controls.Library
/// <param name="args"></param> /// <param name="args"></param>
internal void OnItemSelectedChanged(object sender, ItemSelectedChangedEventArgs args) internal void OnItemSelectedChanged(object sender, ItemSelectedChangedEventArgs args)
{ {
ItemSelectionChangeShown = true;//Remember that you have run already
//vlnStackTrace.ShowStack(string.Format("OnItemSelectedChanged {0}",args.MyItemInfo.ItemID));
if (ItemSelectedChanged != null) ItemSelectedChanged(sender, args); if (ItemSelectedChanged != null) ItemSelectedChanged(sender, args);
} }
/// <summary> /// <summary>
@ -325,8 +328,9 @@ namespace Volian.Controls.Library
// reset the entire step panel if the item isn't found. // reset the entire step panel if the item isn't found.
if (!_LookupStepItems.ContainsKey(id)) Reset(); if (!_LookupStepItems.ContainsKey(id)) Reset();
StepItem itm = _LookupStepItems[id]; StepItem itm = _LookupStepItems[id];
ItemSelectionChangeShown = false;//OnItemSelectedChanged has not run yet.
itm.ItemSelect(); itm.ItemSelect();
OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(itm)); if (!ItemSelectionChangeShown) OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(itm));
//vlnStackTrace.ShowStack("_ItemSelected = {0}", _ItemSelected.ItemID);// Show StackTrace //vlnStackTrace.ShowStack("_ItemSelected = {0}", _ItemSelected.ItemID);// Show StackTrace
} }
} }