Ввод дробных числа с запятой вместо точки в DataGrid WPF и других контролах

Способ работает в любых контролах ввода текста, разберёмся на примере DataGrid. По умолчанию DataGrid не даст ввести дробное число «по-русски», то есть, формата «123,45», в ячейку с прибинденным значением типа float, decimal и т. п. Это происходит потому, что русскоязычный формат разделителя не соответствует формату «по умолчанию», то есть, разделитель точка.
Читать далее «Ввод дробных числа с запятой вместо точки в DataGrid WPF и других контролах»

Добавим таймер во ViewModel

Сегодня мы разберёмся с тем, как заставить программу, написанную с применением MVVM, самостоятельно и в реальном времени обновлять данные, с которыми взаимодействует View. Основная проблема заключается в том, что таймеры из System.Windows и System.Threading создают отдельные потоки в фоне, что вызывает исключение при попытке изменения отслеживающих обновление свойств, которые связаны с UI.
Читать далее «Добавим таймер во ViewModel»

Запуск приложения от имени администратора с технологией ClickOnce

Сегодня мы рассмотрим способ, который позволит приложению ClickOnce запускаться от имени администратора. Дело в том, что если мы воспользуемся обычной правкой манифеста <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />, то программа не скомпилируется и выдаст ошибку: «ClickOnce не поддерживает уровень выполнения запроса «requireAdministrator»». Чтобы реализовать запуск программы от имени администратора и, при этом, продолжить использовать ClickOnce, мы будем манипулировать процессами при старте программы. В статье описан способ как для Windows Forms, так и для WPF.
Читать далее «Запуск приложения от имени администратора с технологией ClickOnce»

Защита программы от множественного запуска

Поскольку создание приложения для Windows Forms и WPF отличается, в статье рассмотрим оба варианта.

Читать далее «Защита программы от множественного запуска»