единственное, что используется для ownerType, - это для идентификации типа, который определяет соответствующие статические методы доступа Get / Set. По крайней мере, один из этих методов доступа должен существовать в 'ownerType', иначе присоединенный доступ XAML не скомпилируется или завершится с ошибкой. Хотя RegisterAttached не дает сбоя в этом случае, и вместо этого успешно возвращает несуществующий DP. Для DP, предназначенных только для присоединенного использования, 'tOwner' не обязательно должен быть производным от DependencyObject. Вы можете использовать любой обычный класс .NET, статический или нестатический, и даже может быть структурой!
, Stackers, я потратил пару часов на этот вопрос, и я хочу знать, есть ли у кого-нибудь однозначный ответ.
Для всех исследований, которые я сделал, я не могу найти никакой разницы между.Register
а также.RegisterAttached
вSilverlight, Теперь, прежде чем прыгнуть пистолет и сказать мне, что.RegisterAttached
используется для присоединения DP к другому классу, попробуйте реализовать свойство Attached Dependency, используяDependencyProperty.Register()
, Я не нашел ни единой разницы, и поэтому я в растерянности относительно того, в чем разница.
Кроме того, в моем конкретном случае я пытаюсь расширить функциональность класса Grid и хочу дать ему некоторые дополнительные свойства. Поэтому я пробовал перечислятьtypeof(Grid)
а такжеtypeof(FluidLayoutManager)
(реализующий класс) в качестве параметра ownerType, и это также, кажется, мало что меняет ... (Я полагаю, что это имеет значение, когда я передаю два пользовательских класса из одного и того же пространства имен. Однако при передаче определенного Microsoft класса против Пользовательский класс, он всегда отображается в XAML как DP пользовательского класса.)
Любое разъяснение по этой теме было бы очень ценно, так как я сижу здесь, почесывая голову, и задаюсь вопросом, есть ли какая-либо разница вообще, или если Microsoft просто облажается со мной еще раз.