|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (как сделать активной определенную вкладку)12.01.2022, 22:19. Показов 9174. Ответов 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 новую (созданную) вкладку сделать активной? Как сделать вкладку активной, если разные маршруты? Сделать вкладку активной при загрузке страницы Как перейти на определенную вкладку? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|