/// <summary> /// /// </summary> /// <param name="control"></param> /// <param name="code"></param> /// <param name="callback"></param> /// <returns></returns> public static string RegisterControl(this ICodeButton control, long code, ControlCallback callback) { string strCode = code.ToString(); if (ControlsDictionary.ContainsKey(strCode)) { throw new ArgumentException("Элемент с кодом '" + strCode + "' уже зарегистрирован"); } ControlsDictionary.Add(strCode, control); ControlsCallbacks.Add(strCode, callback); (control as ICodeButton).ButtonClick += (s, e) => callback.Invoke(strCode); ; return(strCode); }
/// <summary> /// /// </summary> /// <param name="control"></param> /// <param name="callback"></param> /// <returns></returns> public static string RegisterControl(this ICodeButton control, ControlCallback callback) { string strCode = GenerateCode().ToString(); long counter = 0; while (ControlsDictionary.ContainsKey(strCode)) { if (counter >= END_RANGE) { break; } strCode = GenerateCode().ToString(); counter++; } ControlsDictionary.Add(strCode, control); ControlsCallbacks.Add(strCode, callback); (control as ICodeButton).ButtonClick += (s, e) => callback.Invoke(strCode); ; return(strCode); }