protected int _номерВыбранногоЭлемента = -1; // может быть -1, если Группа пуста public ВидГруппаОбъектов() { //ВидПустогоСписка = new ВидКурсорВставки //{ // Тип = ВидКурсорВставки.ТипКурсора.Вертикальный, // ВидРодитель = this //}; ВидПустогоСписка = new ВидСимвола() { ВидРодитель = this }; ВидПустогоСписка.ДобавьСодержание(new Символ('+')); Focusable = true; Content = скрол; Панель.CanVerticallyScroll = true; //Панель.ScrollOwner = скрол; скрол.CanContentScroll = true; скрол.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; скрол.Content = Панель; //MouseLeftButtonUp += ВидГруппаОбъектов_MouseLeftButtonUp; //KeyUp += ВидГруппаОбъектов_KeyUp; //MouseRightButtonUp += РеакцияПраваяКнопкаМышиВВерх; //PreviewMouseLeftButtonDown += ВидГруппаОбъектов_MouseLeftButtonDown; }
//private void ВидГруппаОбъектов_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) //{ // // найти элемент над которым произошло // // или перенести это общий вид он смотрит если родитель группа, то меняет текущий //} public override void ПроизошлоСобытие(string v, ОбщийВид вид) { if (v == "леваяКнопкаМыши") { var номер = Панель.Children.IndexOf(вид); НомерВыбранногоЭлемента = номер; } //base.ПроизошлоСобытие(v,this); if (ВидРодитель != null) { ВидРодитель.ПроизошлоСобытие(v, this); } }
public virtual void ПроизошлоСобытие(string v, ОбщийВид ПредокОткого) // обработка событиий от предков или от родителей { ; }
public void ОтписатьсяОтСобытия(ОбщийВид вид, string имяСобытия) { СписокСобытий.Find(событие => событие.НазваниеСобытия == имяСобытия).СписокПодписанотов.Remove(вид); }
public void ПодписатьсяНасобытие(ОбщийВид вид, string имяСобытия) { СписокСобытий.Find(событие => событие.НазваниеСобытия == имяСобытия).СписокПодписанотов.Add(вид); }