Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 14

Удалить TabItems по клику на Button через UserControl

26.11.2015, 16:28. Показов 1405. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые знатоки, нужна помощь в маленьком деле. Никак не могу реализовать удаление TabItems через UserControl. Проблема в том что делаю
C#
1
TabItem thistabitem = this.tabs.SelectedItem as TabItem;
в итоге выдает NullReferenceException (Ссылка не указывает на объект). Много как пробовал, и приводил до типа что получал через object через .Parent в итоге все та же ошибка.

Архив с проектом прикрепил. Спасибо за внимание и помощь.
Вложения
Тип файла: zip WpfApplication3.zip (33.2 Кб, 2 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2015, 16:28
Ответы с готовыми решениями:

UserControl + Button
Здравствуйте. При создании своего UserControla столкнулся с проблемой: Создал свой UserControl и кинул туда обычную кнопку. Все хорошо...

WebForms загрузка UserControl по клику
Есть страница поиска объявлений Search.aspx. Выводится все по странично по 10-ть записей в ListView. У каждого объявления есть футер с...

Поведение BackColor в Button/UserControl
Знатоки помогите и разжуйте такой вот вопрос. Допустим у меня есть проект меню которого оформлено в стиле такой программы как CCleaner -...

9
Жуткая тВарЬ
394 / 329 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
26.11.2015, 17:13
SakurasouCat, Ээээээ, а Mvvm не пробывали применять

WpfApplication3.zip
0
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 14
26.11.2015, 17:26  [ТС]
Если честно, в первый раз слышу о таком.

В проекте выдает множество ошибок :
Миниатюры
Удалить TabItems по клику на Button через UserControl  
0
Жуткая тВарЬ
394 / 329 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
26.11.2015, 17:32
Цитата Сообщение от SakurasouCat Посмотреть сообщение
В проекте выдает множество ошибок :
Точно выдает или Вы там ручками потыкали ????? у меня все в порядке....
0
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 14
26.11.2015, 17:37  [ТС]
Точно. Студия 12. Ничего больше не делал. Только зашел в VmMain.cs и тут посыпались ошибки, потом зашел в RelayCommand.cs и там тоже ошибки.
0
Жуткая тВарЬ
394 / 329 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
26.11.2015, 17:42
Лучший ответ Сообщение было отмечено SakurasouCat как решение

Решение

SakurasouCat, У Вас не студия а версия языка ниже чем 6.0
Вот класс RelayCommand (хотя в него можете не смотреть он тупо предоставляет нужный API для команд)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 public class RelayCommand : ICommand
    {
        readonly Action _execute_with_param;
        readonly Action<object> _execute;
        readonly Predicate<object> _canExecute;
 
        public RelayCommand(Action<object> execute) : this(execute, null) { }
        public RelayCommand(Action execute) : this(execute, null) { }
 
        public RelayCommand(Action<object> execute, Predicate<object> canExecute)
        {
            if (execute == null)
                throw new ArgumentNullException("execute");
 
            _execute = execute;
            _execute_with_param = null;
            _canExecute = canExecute;
        }
 
        public RelayCommand(Action execute, Predicate<object> canExecute)
        {
            if (execute == null)
                throw new ArgumentNullException("execute");
 
            _execute = null;
            _execute_with_param = execute;
            _canExecute = canExecute;
        }
 
        public event EventHandler CanExecuteChanged
        {
            add { CommandManager.RequerySuggested += value; }
            remove { CommandManager.RequerySuggested -= value; }
        }
 
        public bool CanExecute(object parameter)
        {
            return _canExecute == null ? true : _canExecute(parameter);
        }
        public void Execute(object parameter)
        {
            if (_execute != null)
                _execute.Invoke(parameter);
            if (_execute_with_param != null)
                _execute_with_param.Invoke();
        }
    }
Добавлено через 1 минуту
В VmMain убирите инициализацию автосвойства Tabs и перенесите ее в конструктор
0
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 14
26.11.2015, 17:46  [ТС]
Ошибки почти все пропали, кроме этих.

А может, как то можно взять по
C#
1
TabItem thistabitem = this.tabs.SelectedItem as TabItem;
именно тот TabItem который сейчас выбран ? Видел много примеров этого кода и у других работал.
Миниатюры
Удалить TabItems по клику на Button через UserControl  
0
Жуткая тВарЬ
394 / 329 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
26.11.2015, 17:47
Лучший ответ Сообщение было отмечено SakurasouCat как решение

Решение

Внимательно читаем
Цитата Сообщение от amarf Посмотреть сообщение
В VmMain уберите инициализацию автосвойства Tabs и перенесите ее в конструктор
1
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 14
26.11.2015, 17:51  [ТС]
Спасибо, все заработало. Буду разбираться с этим кодом. А так, что может быть не правильного именно в моем коде, можете подсказать ?
0
Жуткая тВарЬ
394 / 329 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
26.11.2015, 17:58
Цитата Сообщение от SakurasouCat Посмотреть сообщение
А так, что может быть не правильного именно в моем коде, можете подсказать ?
Честно говоря я бы с год два назад покопался в Вашем коде, но сейчас пришло понимание, что нафиг оно нужно - надо с самого начала приучаться делать приложения с правильной архитектурой, а не засорять КодБехайн Ui всякой лапшой...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.11.2015, 17:58
Помогаю со студенческими работами здесь

Анимация по клику на button
Доброго времени суток! Задача такая, есть кнопка (button) и есть нарисованный квадрат например Как сделать так чтобы после нажатия на...

Выполнить действие по второму клику Button
Здравствуйте. Как в visual basic сделать действие по 2 клику. жмешь на кнопку баттон1 появляется метка1 жмешь на кнопку баттон1...

Тег <button>. Переход на другую страницу по клику
Добрый день, не знал в какую тему задать вопрос, по этому спрошу тут: есть тег &lt;button&gt; в HTML, как сделать переход на другую...

Задать файл для элемента audio по клику кнопки button
Всем доброго. Задача следующая: Есть элемент &lt;audio&gt; с id=&quot;player1&quot; стандартно его src заполнен первым файлом который был выбран из бд,...

Динамическое создание TabItems с содержимым
Подскажите как правильно создавать TabItems для TabControl динамически, с расположением на нем визуальных компанент например грида в FM. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru