Здравствуйте, MxMsk, Вы писали:
MM>Здравствуйте, Visor2004, Вы писали:
V>>Господа, прошу высказаться по поводу того, что лично вам не нравится в реализации DependencyProperty. Есть мнение, что в рамках функциональности DependencyProperty реализовать аналог лучше, чем реализован в Ms, практически нереально. Если бы вы делали DependencyProperty, как бы вы их делали?
MM>В DependencyProperty не нравится два момента. Первое — это невозможность положить Binding с режимом OneWayToSource в read-only свойство. Вторая — это, конечно же, боксинг. Но упаковки избежать просто не получиться, потому что внутренние механизмы (та же привязка) должны как-то хранить и обмениваться значениями.
Главное добиться на уровне контракта, в реализации почти всегда можно вывернуться. например, можно сделать что-то типа StoredValue<T>, который специфицировать в рантайме с помощью рефлексии.
V>>Мой вариант в виде C# псевдокода, описывающий основную идею, как видно максимум чего я добился пока — это типизация и отказ от упаковки/распаковки:
MM>Пока что ты этого добился на уровне контракта. А реализация? Как будешь хранить значение? Как твой вариант с атрибутами использовать для Attached Properties?
Никак
чтоб поддержать attached behavior придется опции задавать параметром в методе Property.
Основной поинт в том, чтобы услышать альтернативные способы реализации. То как люди хотели бы это видеть.