Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262

TextBox свойства

14.01.2020, 19:57. Показов 2929. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

ТехтBox... даже не знаю как сказзать -то...
вводишь знак в поле и когда он в фокусе кажется значение далее не "проваливатся" в регистр что-ли.
Когда переносишь фокус на другой объект, то TextBox как-бы двигает значение далее и с ним можно работать.

Можно как-то без "фокуса" это делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2020, 19:57
Ответы с готовыми решениями:

Привязка свойства к TextBox
Доброго времени суток, возникла, как я подозреваю простая проблема: есть просто окно, где есть всего два элемента текстбокс и кнопка. Хочу...

Передача значений из textbox в свойства классов
На скриншоте выше у меня есть 4 textbox. Я хочу вводить с клавиатуры значения в эти textbox и передавать их свойствам из другого класса. ...

Обновление связанного с TextBox свойства в момент набора текста
Добрый день. Хочу, чтоб моя программа удовлетворяла требованиям MVVM, в частности, чтобы Вью ничего не знало про Бехайнд-код. У меня есть...

33
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 14:53  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ахромчон, сделал для вас отдельное решение с демонстрацией.
Добавил туда ещё отображение времени ожидания.
В проекте скопировалось ещё несколько WPF конвертеров.
Для решения они не нужны, но удалять не стал - может вам где-то в другом решении пригодятся.
блин, поклон Вам. буду разбираться и если это ТО, то буду имплементировать в свой. Если что отпишусь. Всяко вопросы будут.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,169
Записей в блоге: 2
15.01.2020, 14:55
Ахромчон, прочитайте обучающие темы из подписи в сообщении.
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 15:48  [ТС]
Элд Хасп,
по сути "заморозка" кнопки выраженав в XAML этим:

XML
1
<Button  Command="{Binding FirstCommand}"/>
первый раз такое выражение вижу, ну да ладно что-нибудь найду. Главное есть что вбить в поиск.

Но мы же делаем "заморозку" не ради самой "заморозки". Кнопка должна делать что-то параллельно! А не только "мерзнуть".

Куда мне свои методы вставлять?

Делаю по-человечески стандартными способами (создаю события и туда методы), - заморозка не работает.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,169
Записей в блоге: 2
15.01.2020, 16:01
Цитата Сообщение от Ахромчон Посмотреть сообщение
первый раз такое выражение вижу, ну да ладно что-нибудь найду. Главное есть что вбить в поиск.
Это называется команда.
И это самое типовое использование кнопки.
Click - используется только в WinForms так как там нет команд.

Цитата Сообщение от Ахромчон Посмотреть сообщение
Куда мне свои методы вставлять?
Я же написал в комментариях в коде.

Все методы работы с данными должны быть в Модели.
В нашем случае это класс AsyncModel экземпляр которого создаётся в ViewModel.

В Metod добавляете свои коды обработки данных.

Цитата Сообщение от Ахромчон Посмотреть сообщение
Делаю по-человечески стандартными способами (создаю события и туда методы), - заморозка не работает.
Для WPF "по человечески" это паттерн MVVM. А вы явно его не используете.
1
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 16:18  [ТС]
Биндинги DelayWait and FirstCommand я протрассировал. Тут понятно, откуда ноги растут.

Вы имеете ввиду сюда?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void Metod(object data)
        {
            /// Эмуляция времени работы метода
 
            /// Обращаемся к БД или в WEB типа socket.Send(....);
            /// Не ждём обратной реакции просто задаём достаточное время для ожидания
            /// Если изменится наше обращение, то тут же мы можем поменять и время ожидания
 
            for (int i = 5; i > 0; i--)
            {
                ReadyMetodDelay = i;
                Thread.Sleep(1000);
            }
        }
И как он Metod связан cконретной кнопкой, например Button1? Не вижу связи.
Кстати не Metod , a Method, если по англ. пишите.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,169
Записей в блоге: 2
15.01.2020, 16:36
Цитата Сообщение от Ахромчон Посмотреть сообщение
И как он Metod связан cконретной кнопкой, например Button1? Не вижу связи.
Вызов метода Модели задан при инициализации команды в ViewModel
C#
11
12
13
14
15
16
17
18
        public AsyncVM()
        {
            /// Подключение прослушки к Модели
            model.PropertyChanged += Model_PropertyChanged;
 
            /// Инициализация команды
            FirstCommand = new RelayCommand(p => model.MetodAsync(p), p => model.IsReadyMetod);
        }
В команду передаются два делегата методов.
Один исполняющий - это p => model.MetodAsync(p). Записано в общем виде. Конкретно в этом можно и просто new RelayCommand(model.MetodAsync,...
Второй отвечающий за состояние команды этот метод создаётся лямбдой p => model.IsReadyMetod

Сам команда привязывается к кнопке в свойство Command обычной привязкой.
Те данные которые привязаны в параметр команды CommandParameter предаются в параметр обоих методов.
То есть эти данные вы получите в параметре data метода model.Metod.

Цитата Сообщение от Ахромчон Посмотреть сообщение
Кстати не Metod , a Method, если по англ. пишите.
Косяк!
Признаю.
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 16:49  [ТС]
Элд Хасп, вы наверное не поняли вопроса.

повторю по другому.

если для Button1 вы говорите, что нужно свои исполняемые методы помещать
в
C#
1
2
3
4
private void Metod(object data)
        {
 
        }
то для Buttons 2....10. Куда?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,169
Записей в блоге: 2
15.01.2020, 17:16
Цитата Сообщение от Ахромчон Посмотреть сообщение
вы наверное не поняли вопроса.
.....
то для Buttons 2....10. Куда?
Да, упустил где вы задали этот вопрос.

Это зависит от реализации и того как данные связанны друг с другом.

Допустим, метод обработки данных один, но сами данные разные.

Тогда у всех кнопок команду привязываете одну и ту же. А параметр команды у каждой привязываете к своим данным.

В других случаях, имеет смысл сделать некий метод "диспетчер" который принимает в параметрах номер или название метода который нужен для обработки и уже по полученному параметру вызывает нужный метод.
Тогда тоже у всех кнопок команда одна, но у каждой в параметре указано какой метод именно для ней надо вызвать.


Но самой типовой, чаще всего используемой реализацией является подход где у каждой кнопки своя команда, а у каждой команды свой метод.

Более детально могу показать, если вы дадите пример задачи полезной для вашего решения.
А то фантазировать искусственные задачи - только голову вам забивать.
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 17:25  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Более детально могу показать, если вы дадите пример задачи полезной для вашего решения.
А то фантазировать искусственные задачи - только голову вам забивать.
да мне в тот же проект добавьте пожалуйтса еще одну кнопку, чтобы их было две и свяжите их c MessageBox, например так:

C#
1
2
3
MessageBox.Show"I'm from button1";
 
MessageBox.Show"I'm from button2";
попробую найти 10 отличий.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,169
Записей в блоге: 2
15.01.2020, 20:37
Цитата Сообщение от Ахромчон Посмотреть сообщение
попробую найти 10 отличий.
Попробуйте.
О результатах сообщите.
Вложения
Тип файла: 7z WpfAhromchon2.7z (172.9 Кб, 1 просмотров)
1
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 21:39  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Попробуйте.
О результатах сообщите
Command1 = Method1
Command2 = Method2


наверное по другому и не должно быть. Тут генеральная линия ясна.

Method1, Method2 работают как Click.
А как же остальная гора events? Например мне нужны PreviewMouseButtonDown и Up.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,169
Записей в блоге: 2
15.01.2020, 22:43
Цитата Сообщение от Ахромчон Посмотреть сообщение
А как же остальная гора events? Например мне нужны PreviewMouseButtonDown и Up.
Для этого рекомендуют использовать привязки команд к событиям.

https://metanit.com/sharp/wpf/22.5.php

Но если это слишком сложно для вас.
Да, и не для всех событий это возможно, то событие обрабатывают в CB окна.

НО!!! Только событие (это View функционал), а не данные!

Должно быть нечто подобное.
XML
1
2
3
4
5
6
7
8
        <Button Content="Очистить" Click="Button_Click"/>
        <Grid VerticalAlignment="Center" HorizontalAlignment="Center">
            <Ellipse Width="150" Height="100" Fill="LightGreen" Stroke="Green" StrokeThickness="2" MouseEnter="Ellipse_MouseEnter"/>
            <TextBlock Text="Проведи курсор 
 элементы 
 перемешаются" VerticalAlignment="Center" HorizontalAlignment="Center"
                       TextAlignment="Center"/>
        </Grid>
C#
1
2
3
4
5
6
7
8
9
10
11
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ((AsyncVM)DataContext).SelectedItem = null;
        }
 
        private void Ellipse_MouseEnter(object sender, MouseEventArgs e)
        {
            if (((AsyncVM)DataContext).SecondCommand.CanExecute(null))
                ((AsyncVM)DataContext).SecondCommand.Execute(null);
 
        }
То есть если и есть необходимость делать обработчики, то в них для обработки данных всё равно надо обращаться к ViewModel.

Скидываю архив.
Там я ещё переделал команды двух предыдущих кнопок - так сказать "для расширения кругозора".
Вложения
Тип файла: 7z WpfAhromchon3.7z (176.3 Кб, 1 просмотров)
1
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
23.01.2020, 15:35  [ТС]
Элд Хасп,

Добрый день,

нужна подсказка по проекту.

не могу проследить каким образом у кнопок меняется контент.

XML
1
2
3
4
5
6
7
8
<Button  Command="{Binding FirstCommand}"
                 CommandParameter="{Binding SelectedItem, ElementName=listBox}">
            <Button.Style>
                <Style TargetType="Button" BasedOn="{StaticResource Button.Style}">
                    <Setter Property="Content" Value="Обработать выбранный элемент первым методом"/>
                </Style>
            </Button.Style>
        </Button>
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16164 / 11284 / 2891
Регистрация: 21.04.2018
Сообщений: 33,169
Записей в блоге: 2
23.01.2020, 18:00
Цитата Сообщение от Ахромчон Посмотреть сообщение
не могу проследить каким образом у кнопок меняется контент.
Это же производный стиль.
А базовый это
XML
1
2
3
4
5
6
7
8
9
10
11
        <Style TargetType="Button" x:Key="Button.Style">
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="Red"/>
                    <Setter Property="Content" Value="{Binding Text, ElementName=delayText}"/>
                </Trigger>
                <DataTrigger Binding="{Binding SelectedItem}" Value="{x:Null}">
                    <Setter Property="Content" Value="Данные не выбраны"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
В нём меняется через триггеры в зависимости от свойства IsEnabled кнопки (которым управляет команда) и свойства SelectedItem ViewModel.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2020, 18:00

Нужно во время выполнения приложения менять свойства IsEnabled TextBox'ов
Ситуация такая: Есть шаблон TextBox, мне нужно во время выполнения приложения менять свойства IsEnabled TextBox'ов. Если задать его...

Изменение забиндинного свойства Text компонента TextBox по нажатию Enter
Столкнулся со следующей проблемой: есть форма, на ней всего 2 активных элемента - кнопка и текстбокс код: &lt;Window...

Выполнить команду в set свойства для свойства SelectedItem (ComboBox ) MVVM
Хай Коротко: при каждом выборе элемента из ComboBox нужно выполнять команду, для которой в качестве параметра нужно передать экземпляр...

Биндинг свойства контрола к одной из переменных свойства класса
Добрый день. У меня есть вопрос по биндингу. Ситуация следующая: У меня есть структура, которой содержится несколько переменных....

Реализовать зависимость свойства volume у mediaElement от свойства Value у slider
Добрый день! Как можно реализовать зависимость свойства volume у mediaElement от свойства Value у slider? Что бы при увеличении значения...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
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) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru