В ответ на недавний пост про BusyIndicator решил поделиться своим опытом/виденьем данной проблемы. В статье представлена, на мой взгляд, более простая реализация индикатора занятости контрола. Сейчас любой может воспользоваться готовыми продуктами от маститых девелоперских контор, но проблема «Дырявой Абстракции» при этом становится весьма актуальной. Использование готовых индикаторов противоестественным для них образом неминуемо приводит к плачевным результатам. Поэтому очень важно представлять «как это работает».
Читать полностью »
Рубрика «wpf» - 13
Как бы я делал BusyIndicator
2012-04-18 в 22:37, admin, рубрики: .net, async pattern, mvvm, wpf, индикатор, разработка, метки: async pattern, mvvm, wpf, индикаторСоздание Attached Property для BusyIndicator шаг за шагом
2012-04-17 в 5:54, admin, рубрики: .net, attached properties, binding, silverlight, wpf, XAML, разработка, метки: attached properties, binding, c++, silverlight, wpf, XAMLДанная статья является продолжением статьи Автоматический BusyIndicator для асинхронных операций и не только.
Автоматический BusyIndicator для асинхронных операций и не только
2012-04-17 в 5:53, admin, рубрики: .net, binding, silverlight, wpf, XAML, разработка, метки: binding, c++, silverlight, wpf, XAML Использование такого компонента как BusyIndicator привнесит в наше приложение приятные (индикация процесса) и полезные (блокировка элемента управления) качества. Однако до последнего времени я редко использовал его, т.к. при асинхронном получении источника данных приходилось постоянно писать дополнительный код для включения/выключения. При синхронной работе ситуация вроде как упрощается, но использование MVVM-модели всё-равно требует дополнительных телодвижений. Особенно, если BusyIndicator добавляется в самом конце разработки формы.
Поэтому, я решил максимально автоматизировать этот процесс, чтобы мне не приходилось писать ни строчки кода. Итак:
Читать полностью »
WPF: Несколько параметров для конвертера
2012-04-02 в 16:39, admin, рубрики: .net, converter, MarkupExtensions, wpf, метки: converter, MarkupExtensions, wpf В первой своей статье, посвящённой конвертерам, я описал способ использование конвертеров в качестве расширения разметки. Продолжая тему конвертеров, хотелось бы рассказать о параметрах конвертера.
Читать полностью »
Понимание XAML
2012-03-30 в 11:43, admin, рубрики: .net, silverlight, windows phone 7, wpf, XAML, разработка под windows phone, метки: silverlight, windows phone 7, wpf, XAMLДля кого эта статья: для людей, которые только начинают своё знакомство с технологиями использующими XAML. Чтобы не усложнять статью, я не касаюсь многих деталей вроде Markup Extensions, управления ресурсами и т.п. Прочитав данную статью, я надеюсь, вы сможете понять что происходит под капотом XAML парсера и более чётко представлять как из вашего текстового документа получается граф объектов в памяти, с различными свойствами.
XAML — это язык разметки, который появился вместе с первой версией WPF от Microsoft. Сейчас он также используется в Silverlight и Windows Phone 7 (сути тот же Silverlight). Таким образом, сейчас довольно много людей активно используют XAML. Однако для эффективной работы полезно будет понять концепции, которые стоят за я языком, чтобы отдельные конструкции не казались странными.
Читать полностью »
WPF: конвертеры как MarkupExtension
2012-03-28 в 16:59, admin, рубрики: .net, MarkupExtensions, wpf, XAML, Конвертеры, метки: MarkupExtensions, wpf, XAML, Конвертеры Конверторы являются одной из важнейшей особенностью механизма привязки в WPF. Они позволяют управлять тем, как источник привязки будет представлен в UI. В данной статье я покажу, как немного упростить использование конвертеров в XAML коде.
Читать полностью »
Применение атрибутов в C#
2012-03-28 в 8:47, admin, рубрики: .net, wpf, атрибуты, Программирование, метки: .net, c++, wpf, атрибуты
Большинство источников по использованию атрибутов [1, 2] рассказывают, что они есть, «обеспечивают эффективный способ связывания метаданных или декларативной информации с кодом», могут быть получены при помощи отражений [3]. В рамках данной статьи, я попробую показать прикладной пример применения атрибутов: проверка заполненности обязательных полей на форме добавления/редактирования нового бизнес-объекта.
Перед тем, как вы нажмете подробнее, несколько предупреждений:
1. Если вы уже работали с атрибутами, то, возможно, вам будет неинтересно.
2. При написании демонстрационного примера были допущены существенные упрощения (например, отказ от MVVM), с целью облегчения восприятия материала про атрибуты.
Читать полностью »
.NET / Attached свойства для ограничения текстового ввода
2012-02-08 в 8:30, admin, рубрики: attached properties, wpf, метки: attached properties, wpf WPF – это уже далеко не новая технология на рынке, но относительно новая для меня. И, как это часто бывает при изучении чего-то нового, появляется желание/необходимость в изобретении велосипедов с квадратными колесами и литыми дисками для решения некоторых типовых задач.
Одной из таких задач является ограничение ввода пользователем определенных данных. Например, мы хотим, чтобы в некоторое текстовое поле можно было вводить только целочисленные значения, а в другое – дату в определенном формате, а в третье – только числа с плавающей запятой. Конечно, окончательная валидация подобных значений все равно будет происходить воЧитать полностью »
.NET / Вышла Elysium Theme 1.2 (Community Technology Preview 2)
2012-02-06 в 14:40, admin, рубрики: metro, theme, wpf, метки: metro, theme, wpf Некоторое время назад я писал о том, что хочу сделать небольшой open-source проект Elysium. О проекте в целом вы можете прочитать в приведённой статье, сейчас же стоит упомянуть только то, что одна из частей проекта — тема в стиле Metro для WPF. Дело в том, что вчера я выпустил версию 1.2 (CTP 2) этой темы и сегодня хочу поведать о том, что в ней такого особенного реализовано.
О функционале
Изначально планировалось, что Elysium Theme будет именно темой для WPF, т.е. будет просто предоставлять некий набор стилей для стандартных элементов управления. Однако позже стало понятно, что перенести только стиль Metro невозможно: для «полноценного»Читать полностью »
