Я работаю с прикрепленными свойствами и придумал интересный теоретический вопрос. Я знаю, что если я хочу, чтобы установить вложенное свойство через XAML, я использую формат:Что такое префикс прикрепленного свойства, которое присоединяет подкласс?
<control ownerClass.propertyName="some value"/>
Мой вопрос, что произойдет, если я получить класс от «ownerClass». Например, если я определяю следующий класс:
class MyGrid : Grid {
}
Пробовал установить его через XAML следующим образом
<MyGrid>
<Button MyGrid.Row = "0">Bla Bla</Button>
</MyGrid>
Но IntelliSense не подведи меня. Когда я использовал собственное пространство имен в прикрепленном свойстве, он сработал.
Кроме того, это позволило мне сделать это:
<MyGrid>
<Button Grid.Row = "0">Bla Bla</Button>
</MyGrid>
Это имеет смысл, конечно, так как Row вложенное свойство является статическим членом сетки класса и определяется им. Единственная проблема здесь в том, что пользователи моего нового класса узнают, что они были получены из Grid, и что это конкретное свойство было определено предком. Мне кажется, что это детали реализации, которые я бы не хотел показывать пользователям моего класса.
Есть ли способ получить WPF до скрыть факт, что это вложенное свойство было фактически определено суперклассом?
Спасибо,
Коби
Просто чтобы прояснить, Meleak решил исходную задачу (Thnx для этого, Meleak), но я все еще интересно, если есть способ «скрыть» детали реализации и не разрешать пользователю получать доступ к прикрепленному свойству с помощью префикса суперкласса. Если в будущем я решит изменить реализацию, поэтому я не использую класс Grid как суперкласс, он все равно будет работать одинаково, поэтому я бы предпочел, чтобы пользователи не подвергались факту, что этот класс был унаследован от Класс сетки. –
Вы хотите скрыть Grid.Row от intellisence или вы хотите отключить funtionality Grid.Row или оба? –