Способ работает в любых контролах ввода текста, разберёмся на примере DataGrid. По умолчанию DataGrid не даст ввести дробное число «по-русски», то есть, формата «123,45», в ячейку с прибинденным значением типа float, decimal и т. п. Это происходит потому, что русскоязычный формат разделителя не соответствует формату «по умолчанию», то есть, разделитель точка.
Читать далее «Ввод дробных числа с запятой вместо точки в DataGrid WPF и других контролах»
Метка: wpf
Добавим таймер во ViewModel
Сегодня мы разберёмся с тем, как заставить программу, написанную с применением MVVM, самостоятельно и в реальном времени обновлять данные, с которыми взаимодействует View. Основная проблема заключается в том, что таймеры из System.Windows
и System.Threading
создают отдельные потоки в фоне, что вызывает исключение при попытке изменения отслеживающих обновление свойств, которые связаны с UI.
Читать далее «Добавим таймер во ViewModel»
Запуск приложения от имени администратора с технологией ClickOnce
Сегодня мы рассмотрим способ, который позволит приложению ClickOnce запускаться от имени администратора. Дело в том, что если мы воспользуемся обычной правкой манифеста <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
, то программа не скомпилируется и выдаст ошибку: «ClickOnce не поддерживает уровень выполнения запроса «requireAdministrator»». Чтобы реализовать запуск программы от имени администратора и, при этом, продолжить использовать ClickOnce, мы будем манипулировать процессами при старте программы. В статье описан способ как для Windows Forms, так и для WPF.
Читать далее «Запуск приложения от имени администратора с технологией ClickOnce»
Пара ключ-значение для ComboBox (WPF)
Решение подходит только для WPF (не MVVM). Вариант для WinForms
Читать далее «Пара ключ-значение для ComboBox (WPF)»
Защита программы от множественного запуска
Поскольку создание приложения для Windows Forms и WPF отличается, в статье рассмотрим оба варианта.