|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (как сделать активной определенную вкладку)12.01.2022, 22:19. Показов 9110. Ответов 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 новую (созданную) вкладку сделать активной? Как сделать вкладку активной, если разные маршруты? Сделать вкладку активной при загрузке страницы Как перейти на определенную вкладку? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|