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);
}
private bool ItemSelectionChangeShown = false; // This keeps OnItemSelectedChanged from being called twice when an item is selected.
/// <summary>
/// Occurs when the selected StepItem changes
/// </summary>
@ -87,6 +88,8 @@ namespace Volian.Controls.Library
/// <param name="args"></param>
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);
}
/// <summary>
@ -325,8 +328,9 @@ namespace Volian.Controls.Library
// reset the entire step panel if the item isn't found.
if (!_LookupStepItems.ContainsKey(id)) Reset();
StepItem itm = _LookupStepItems[id];
ItemSelectionChangeShown = false;//OnItemSelectedChanged has not run yet.
itm.ItemSelect();
OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(itm));
if (!ItemSelectionChangeShown) OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(itm));
//vlnStackTrace.ShowStack("_ItemSelected = {0}", _ItemSelected.ItemID);// Show StackTrace
}
}