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

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

    Встречали подобное в реальной жизни? Я тоже нет.
    Читать дальше →
  • BindableConverter для WPF

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

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

    Собственно, это и проблема. А ниже ее решение.
    Читать дальше →
  • SafeThreadUpdate() для wpf-контролов

    Привет, ребята! Многим, наверно, неудобно обращаться к 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);
    
    • –9
    • 2,9k
    • 5
  • Нужен ли C#-у «state»?

    Ребята, это скорее приглашение к конструктивному обсуждению, чем статья. Столкнулся с тем, что в C# как таковом нет понятия «состояния», а точнее — нет встроенной удобной возможности запомнить состояние сложного объекта в определенный момент, чтобы потом легко сравнивать, или другие объекты такого же типа находятся в таком же состоянии? Ниже я предлагаю пример — как бы это могло выглядеть.
    Читать дальше →
  • Пилим простенький Binder…

    image


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

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

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


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


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