Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Нетрадиционная ориентация ООП

Время на прочтение1 мин
Количество просмотров10K
Дверь.Замок.Повернуть(
обычныйКлюч, 
обороты: 2, 
контекстЗдания: мойДом.мояКвартира.ПолучитьКонтекст());

Встречали подобное в реальной жизни? Я тоже нет.
Читать дальше →
Всего голосов 80: ↑20 и ↓60-40
Комментарии182

BindableConverter для WPF

Время на прочтение4 мин
Количество просмотров5.4K
Проблема: WPF классная технология, но местами недоработанная. Например, вот такой код выплюнет не помню точно какой Exception, поскольку ConverterParameter не является наследником DependencyObject'a:

<...Text={Binding SourceProperty, Converter={StaticResource SomethingToSomethingElseConverter} ConverterParameter={Binding AnotherSourceProperty}} />

Собственно, это и проблема. А ниже ее решение.
Читать дальше →
Всего голосов 15: ↑10 и ↓5+5
Комментарии8

SafeThreadUpdate() для wpf-контролов

Время на прочтение1 мин
Количество просмотров3.1K
Привет, ребята! Многим, наверно, неудобно обращаться к Dispatcher каждый раз, когда нужно обновить контрол с не UI-потока в WPF… в общем, меня это конкретно достало, поэтому написал очень простенький extension-метод, которым и хочу поделиться с вами всеми:

static class exMethods
{
async public static void ThreadSafeUpdate(this System.Windows.Controls.Control @this, Action updateLogic)
        {
            await @this.Dispatcher.BeginInvoke(updateLogic);
        }
}


Работает вот так:
this.ThreadSafeUpdate(() => this.Visibility = Visibility.Hidden);
Всего голосов 21: ↑6 и ↓15-9
Комментарии5

Нужен ли C#-у «state»?

Время на прочтение1 мин
Количество просмотров4.6K
Ребята, это скорее приглашение к конструктивному обсуждению, чем статья. Столкнулся с тем, что в C# как таковом нет понятия «состояния», а точнее — нет встроенной удобной возможности запомнить состояние сложного объекта в определенный момент, чтобы потом легко сравнивать, или другие объекты такого же типа находятся в таком же состоянии? Ниже я предлагаю пример — как бы это могло выглядеть.
Читать дальше →
Всего голосов 22: ↑3 и ↓19-16
Комментарии12

Пилим простенький Binder…

Время на прочтение5 мин
Количество просмотров7.2K
image


Дело было так… мне понадобился односторонний биндер. Только не от контрола к источнику, а наоборот. Я в коде сто тыщ раз меняю значение источника — и не хочу, чтоб голова болела о всяких там textbox'ах. Хочу, чтоб они сами обновлялись…

Вообще-то, у буржуев уже есть встроенный биндер, очень мощный и крутой. Настолько мощный и крутой, что почти без документации. Точнее, ее черезмерно много — и везде невнятно, нечетко. Короче, плюнул я на буржуйские технологии и решил ВОТ ЭТИМИ РУКАМИ запилить свой биндер… Теперь вот показываю новичкам — наверно, кому-то пригодиться для расширения С#-кругозора.
Читать дальше →
Всего голосов 16: ↑8 и ↓80
Комментарии11

Мой кот про «совершенный код»

Время на прочтение5 мин
Количество просмотров6.8K
Эпичный эпиграф:
«Паттернов можешь ты не знать,
но управленье знать обязан!»


«Большое видится на расстояньи»


Кто знаком с теорией Геделя о неопределенности (которая получила не совсем точное название «о неполноте»), тот понимает: все (достаточно) сложные системы испытывают принципиальные трудности в самопознании и самоописании на определенном уровне глубины и детальности. Сразу уточню: я НЕ утверждаю, что между теорией вышеупомянутого Г. и “вечными” (именно в кавычках!) проблемами ООП имеется прямая связь, нет. Но я, тем не менее, утверждаю, что проблемы «совершенного кода» – объективно не разрешимы. Не вообще никогда, а ровно до того момента, пока мы наконец-то не выйдем за пределы самого ООП – и не посмотрим на него с высоты еще более сложной системы. «Большое ведь видится на расстояньи»!
Читать дальше →
Всего голосов 26: ↑8 и ↓18-10
Комментарии6

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность