Вопрос об этом расширении разметки xaml - PullRequest
0 голосов
/ 01 июля 2010

Я пытаюсь понять, что делает расширение разметки для атрибута x: Key ниже и что это за расширение разметки?

<Window x:Class="App1.Window1" xmlns:dxg="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<DataTemplate x:Key="{dxg:Example ResourceKey=Example}">
    <dxg:TextEdit Text="123/>
</DataTemplate>

</Window>

Спасибо.

Ответы [ 2 ]

2 голосов
/ 01 июля 2010

Ну, этот пример ничего не будет делать, скорее, он потерпит неудачу, поскольку не является расширением разметки с именем Example в пространстве имен WPF.

Но если бы было расширением разметки с именем Example, то оно должно было бы создать экземпляр объекта ExampleMarkupExtension, установить его свойство ResourceKey, а затем вызвать его метод ProvideValue, который вернет объект, который будет использоваться в качестве ключа для элемента, добавляемого в словарь ресурсов.

Без дополнительного контекста трудно понять, что приведенный вами пример предназначен для демонстрации. Я предполагаю, что демонстрируемые концепции: а) что ключом к словарю ресурсов может быть любой объект, а не просто строка, и б) что вы можете использовать расширение разметки для генерации этого ключа. Реальный пример:

<DataTemplate x:Key="{x:Type TextBox}">

, который добавляет DataTemplate с ключом typeof(TextBox) в словарь ресурсов.

0 голосов
/ 01 июля 2010

обычно атрибут x: Key позволяет вам ссылаться на ресурс по ключу, в этом случае, поскольку шаблон не находится в ResourceDictionary, я не уверен, что он имеет какое-либо назначение!1003 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...