|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (как сделать активной определенную вкладку)12.01.2022, 22:19. Показов 9262. Ответов 82
Метки нет (Все метки)
Здравствуйте! Как в Авалонии сделать, чтобы при нажатии на кнопку на первой вкладке TabControl, включалась вторая вкладка tabControl? Заранее спасибо
0
|
|
| 12.01.2022, 22:19 | |
|
Ответы с готовыми решениями:
82
Сделать активной определенную вкладку tabControl Как при открытии дочернего окна сделать активной вкладку в TabControl?
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 17.01.2022, 21:56 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 17.01.2022, 22:00 [ТС] | |
|
limeniye, так нельзя, по заданию для каждой вкладки должна быть своя ViewModel
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 17.01.2022, 22:04 | |
|
Для каждой вкладки — своя ViewModel, но для каждой кнопки — только одна команда.
Добавлено через 1 минуту И я немного упустил Вашу суть: а о каких вкладках идёт речь?
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|||||||||||
| 17.01.2022, 22:04 [ТС] | |||||||||||
|
Скажите, пожалуйста, как быть, если в строке <Button Grid.Row="0" Content="Cформировать" Command="{Binding DoTheThing}" уже присутствует другой обработчик команды Command="{Binding Calc_click}". В одном обработчике не получается всё объединить.
У меня получается для одной вкладки TabControl - одна ViewModel_1, для другой вкладки - другая ViewModel_2. Этот код у меня для ViewModel_1:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 17.01.2022, 22:11 [ТС] | |
|
Извиняюсь, я не туда записала вопрос
Посмотрите, пожалуйста, вопрос в теме "Avalonia (как сделать активной определенную вкладку)"
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||||||||||||||||
| 17.01.2022, 22:24 | ||||||||||||||||
|
Я не об этом. Я же не знаю, что у Вас на второй вкладке
, чтобы сказать, как правильно строить архитектуру .В прочем, ладно, можно универсализировать. Допустим у Вас две каких-то ViewModel на которых есть по две команды. Измените названия комманд, чтобы они были одинаковыми. Пример:
1
|
||||||||||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||
| 17.01.2022, 22:30 | ||
|
В таком случае получается, что у Вас две вкладки — это две разные View? Или для двух вкладок один и тот же шаблон страницы?
Я глянул код, который отмечен как правильный, теперь стало понятнее. У Вас не 2 VM -- у Вас одна VM.
0
|
||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||||||||||||||||||||
| 17.01.2022, 23:28 | |||||||||||||||||||||
|
Собрал решение, что называется "на коленке". Сурово, с костылями, но сильно усложнять не хотел.
Создал два UserControl'а -- это две страницы: для первого таба и для второго. В оба таба просто впихнул одну кнопку: "Далее" и "Назад": Пример одной из страниц
Так как они одинаковые -- выложу только одну:
НУ и главная VM:
TestTabNavigationForCyberForm.7z
2
|
|||||||||||||||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 18.01.2022, 00:06 | |
|
Примечания: если хотите добавить что-то на первую страницу (или, например, изменить ей задний фон), то изменяйте файл Tab1UserControl. То же самое касается и Tab2UserControl.
1
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 18.01.2022, 18:35 [ТС] | |
|
limeniye, спасибо большое!!! Всё работает! А как быть, если для кнопки, которая на первой вкладке, есть еще один обработчик?
<Button Content="Далее" Command="{Binding DoTheThing} " Command="{Binding Сalc_click} " /> Понимаю, что так нельзя, в одной команде ссылка на свойство, а в другой просто код, как всё объединить?
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 18.01.2022, 18:39 [ТС] | |
|
А если на одной ViewModel для кнопки две команды нужно?
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 18.01.2022, 18:53 | |
|
Sun1212, скажу Вам честно -- Вы сильно заблуждаетесь и говорите кашу. Давйте я помогу Вам сориентироваться, если Вы мне подробнее объсните зачем Вам два обработчика. Я хочу понять Ваше виденье и понимание.
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 18.01.2022, 18:59 [ТС] | |
|
limeniye, в обработчике Command="{Binding Сalc_click} происходит расчет какой-то задачи (кнопка на 1-ой вкладке запустит этот расчет), а результат должен появиться на другой вкладке
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 18.01.2022, 19:11 | |
|
Sun1212, ага, теперь Вас понял.
Скажите, пожалуйста, то есть кнопка должна и менять страницу и изменять значение на второй и всё это на одном нажатии?
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 18.01.2022, 19:22 | |
|
Хорошо. Сначала просто из первой страницы изменим значение на второй странице.
Тут нам понадобится MVVM. В Вашей архитектуре получается есть две ViewModel, две View и одна Model. Модель будет содержать число. Обе ViewModel'и будут "слушать" какое в данный момент значение числа и если оно изменится -- изменять его у себя. Пример:
1
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 18.01.2022, 19:28 [ТС] | |
|
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 18.01.2022, 19:29 | |
|
Что происходит на картинке:
- мы нажали на кнопку; - вызвалась команда; - команда обратилась к Model и говорит: "Привет, Model, я хочу изменить у тебя значение твоего Result на двойку"; - Model говорит: "хорошо, я оповещу твою подругу Tab2ViewModel, что моё значение изменилось"; - Tab2ViewModel "слушает" внимательно Model, и Model говорит ей "Я изменила значение своего свойства Result на двойку"; - Tab2ViewModel берёт это значение и сохраняет у себя; - Tab2View всегда слушает свою Tab2ViewModel, и она слышет, как Model передала Tab2ViewModel значение 2; - ну она не растерялась и сразу же изменила это значение на View.
1
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 18.01.2022, 19:33 [ТС] | |
|
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||||||
| 18.01.2022, 19:34 | ||||||
|
Это означает, что у Вас должен быть третий класс -- который будет общим между ViewModel'ями.
Добавлено через 1 минуту
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 18.01.2022, 19:35 [ТС] | |
|
Что-то как-то очень сложно получается...Попроще можно сделать?
0
|
|
| 18.01.2022, 19:35 | |
|
Как сделать активной вкладку TPageControl Как в Pagecontrol новую (созданную) вкладку сделать активной? Как сделать вкладку активной, если разные маршруты? Сделать вкладку активной при загрузке страницы Как перейти на определенную вкладку? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|