Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468

Приложение MVVM. Ограничение пользовательского ввода для численных свойств

26.02.2023, 14:59. Показов 690. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В этой теме обсуждается только вопрос по ограничению пользовательского ввода.
Основная тема: Приложение MVVM. VMs и навигация
Элд Хасп, Теперь давайте запретим пользователю вводить в поля цена/количество на складе нечисловые значения. Что для этого нужно?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.02.2023, 14:59
Ответы с готовыми решениями:

Переключение между полями и ограничение пользовательского ввода
Здравствуйте. Подскажите как организовать следующую задачу на примере базового фрагмента. import tkinter from tkinter import* ...

Проверка корректности ввода для численных типов данных
Всем добрый вечер. Столкнулся с проблемой, когда ввожу число, его нужно проверить на корректность. Делаю это следующим образом. void...

Маска ввода для поля TextBox по шаблону MVVM
Привет, есть поля TextBox для ввода телефона, паспортных данных и т.д. Как наиболее правильно реализовать проверку по маске ввода не...

9
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
26.02.2023, 16:47
Цитата Сообщение от INexteR Посмотреть сообщение
запретим пользователю вводить в поля цена/количество на складе нечисловые значения.
Для целых - достаточно привязки с UpdateTrigggerSource=PropertyChanged.
Для не целых в таком решении проявляются проблемы с вводом десятичной точки.
Проверьте как работает такое решение.
Если проблема десятичной точки не актуальна, то остановимся на этом.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
26.02.2023, 16:53  [ТС]
Элд Хасп, я хотел, чтобы нечисловые значения вообще не вводились. Нецелочисленный ввод не будем рассматривать
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
26.02.2023, 17:47
Цитата Сообщение от INexteR Посмотреть сообщение
чтобы нечисловые значения вообще не вводились. Нецелочисленный ввод не будем рассматривать
Тогда просто добавьте UpdateTrigggerSource=PropertyChanged в привязку.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
26.02.2023, 20:38  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Тогда просто добавьте UpdateTrigggerSource=PropertyChanged в привязку.
В какую привязку, что-то не пойму. Те поля, в которые вводятся значения, без привязок. Но к ним привязываются DP свойства, которые находятся в ProductsViewSource

Добавлено через 14 минут
Поля
XML
1
2
3
4
5
6
7
8
9
10
11
12
<StackPanel>
    <TextBlock Text="Название" />
    <TextBox x:Name="name" />
    <TextBlock Text="Описание" />
    <TextBox x:Name="description" />
    <TextBlock Text="Производитель" />
    <TextBox x:Name="manufacturer" />
    <TextBlock Text="Цена" />
    <TextBox x:Name="cost" />
    <TextBlock Text="Наличие на складе" />
    <TextBox x:Name="quantityInStock" />
</StackPanel>
и представление коллекции
XML
1
2
3
4
5
6
7
8
9
<root:ProductsViewSource x:Key="productsView"
                         Source="{Binding Products}"
                         SortDirection="{Binding SelectedValue, ElementName=sort}"
                         ManufacturerId="{Binding SelectedValue, ElementName=filter}"
                         ProductName="{Binding Text, ElementName=name}"
                         ProductDescription="{Binding Text, ElementName=description}"
                         ManufacturerName="{Binding Text, ElementName=manufacturer}"
                         ProductCost="{Binding Text, ElementName=cost}"
                         ProductQuantityInStock="{Binding Text, ElementName=quantityInStock}" />
Как здесь поможет UpdateSourceTrigger и где он нужен?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
26.02.2023, 20:49
Цитата Сообщение от INexteR Посмотреть сообщение
Как здесь поможет UpdateSourceTrigger и где он нужен?
C#
157
158
159
160
161
        public int ProductCost
        {
            get => (int)GetValue(ProductCostProperty);
            set => SetValue(ProductCostProperty, value);
        }
XML
189
190
                        <TextBlock Text="Цена" />
                        <TextBox x:Name="cost" Text="{Binding ProductCost, Source={StaticResource productsView}, UpdateSourceTrigger=PropertyChanged}" />
1
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
26.02.2023, 21:11  [ТС]
Элд Хасп, ага, то есть привязка переместилась. Ясно
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
26.02.2023, 22:17
Цитата Сообщение от INexteR Посмотреть сообщение
то есть привязка переместилась. Ясно
Можно ещё обработчик в TextBox задать который отсекать нецифровые клавиши.
Ограничивать ввод с клавиатуры букв wpf
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
27.02.2023, 10:44  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Можно ещё обработчик в TextBox задать который отсекать нецифровые клавиши.
Хорошее решение. А я почему-то думал добавить поведение
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
27.02.2023, 10:54
Цитата Сообщение от INexteR Посмотреть сообщение
А я почему-то думал добавить поведение
Можно и поведение, но в нём будет та же самая логика.
В данном случае хелпер с обработчиком мне кажется проще и удобнее.
Вот если бы было задействовано несколько свойств, событий, то, конечно, пришлось бы писать AP-свойство, Behavior или Расширение Разметки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.02.2023, 10:54
Помогаю со студенческими работами здесь

Ограничение для поля ввода
Как сделать чтобы в поле для ввода нельзя было вводить число меньше 0.3 (например)

Ограничение ввода для 16-ричных чисел
У меня курсовой проект. Нужно сделать, чтобы в textBox1 можно было вводить 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Помогите,...

Триггер, для ограничение ввода данных
Здравствуйте, не могу вообще понять как сделать данное условие.... Хочу задать условия («Чтобы нельзя было указывать в таблица...

Приложение для просмотра свойств медиа файлов
Есть ли прога для андроида, показывающая полный список свойств малтимедиэ-файла? media info отказывается запускаться, нужен аналог без...

MVVM, правильная привязка вспомогательных свойств
Есть Model, которая помимо прочего содержит коллекцию для отображения в таблице. //Некая сложная модель данных public class...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru