private void КомандаДобавить_Click(object sender, RoutedEventArgs e) { var вставляемыйОбъект = new Пустота(); Группа.Добавить(вставляемыйОбъект); var вид = ВыбратьВид(вставляемыйОбъект); СписокВидов.Add(вид); }
protected virtual void ВидГруппаОбъектов_KeyUp(object sender, KeyEventArgs событие) { if (событие.Key == Key.Up) { if (_номерВыбранногоЭлемента != -1) { НомерВыбранногоЭлемента--; } } if (событие.Key == Key.Down) { if (_номерВыбранногоЭлемента < Группа.Список.Count - 1) { НомерВыбранногоЭлемента++; } } if (событие.Key == Key.Enter) { var группа = this[_номерВыбранногоЭлемента + 1] as ВидГруппаОбъектов; if (группа != null) { группа.Фокус(); //группа.Редактируемый=true; //группа.ВыбранныйЭлемент.Фокус(); } } if (событие.Key == Key.Escape) { var родитель = ВидРодитель as ВидГруппаОбъектов; if (родитель != null) { родитель.Фокус(); } } if (событие.Key == Key.Insert) { // здесь выбирается какой элемент вставить var вставляемыйОбъект = new Пустота(); // тутможно вытавить выбор из Списка видов if (НомерВыбранногоЭлемента == -1) { _номерВыбранногоЭлемента = 0; } Группа.Вставить(_номерВыбранногоЭлемента, вставляемыйОбъект); var вид = ВыбратьВид(вставляемыйОбъект); // нужно различать вставляемые группы и невставляемые //if(ЭтоПустаяГруппа) СписокВидов.Clear(); Панель.Children.Insert(_номерВыбранногоЭлемента + 1, вид); for (int и = _номерВыбранногоЭлемента + 2; и < Группа.Список.Count + 1; и++) { var вид2 = (ОбщийВид)СписокВидов[и]; вид2.ОбновитьВид(); } НомерВыбранногоЭлемента++; //Focus(); событие.Handled = true;//событие обработано Запрет на дальнейшую обработку, можно обойти } if (событие.Key == Key.Delete) { if (НомерВыбранногоЭлемента >= -1 && НомерВыбранногоЭлемента < Группа.Список.Count - 1 && !ЭтоПустаяГруппа) { Группа.Удалить(НомерВыбранногоЭлемента + 1); СписокВидов.RemoveAt(НомерВыбранногоЭлемента + 2); //for (int и = НомерВыбранногоЭлемента+2; и < Группа.Список.Count+1; и++) //{ // var вид = (ОбщийВид) СписокВидов[и]; // вид.ОбновитьВид(); //} } //if (ЭтоПустаяГруппа) СписокВидов.Add(ВидПустогоСписка); } }