2015-04-09 6 views
-2

На днях я искал DataProviders в XAML, и я нашел эту статью Bind to methods with ObjectDataProvider, в которой объясняется об ObjectDataProvider. Поэтому я решил попробовать. Поэтому, когда я скопирую xaml и код за файлом, я получил недопустимую ошибку разметки из-за несоответствия пространства имен в моем файле xaml. Я решил это методом проб и ошибок, но у меня не было полной концепции XAML и его пространств имен. Поэтому мне хотелось бы узнать более подробно.Как определить/объявить пространство имен xaml в WPF?

+0

Читайте здесь [здесь] (https://msdn.microsoft.com/en-us/library/ms747086%28v=vs.110%29.aspx). –

+0

ppl goto msdn для таких вещей :) – Muds

+1

@Muds Уже там, в MSDN. MSDN не новичок. –

ответ

1

XAML опирается на концепции пространства имен .Net Framework. Вы просто можете использовать компоненты, которые находятся в другом пространстве имен (в вашем примере это ColorHelper). Но вы должны сказать XAML-компилятор (да XAML может быть скомпилирован), где можно найти материал, который вы пытаетесь использовать. Вы делаете это, первый объявляя XML-пространства:

xmlns:local="clr-namespace:SimpleObjectDataProvider" 

Затем на другой линии

<ObjectDataProvider x:Key="colors" 
    ObjectType="{x:Type local:ColorHelper}" 
    MethodName="GetColorNames"/> 

вы можете использовать все классы/WPF-элементов управления, которые определены в этом пространстве имен. Пример ссылки, которую вы опубликовали, может быть немного запутанным, потому что не указано, где (в каком пространстве имен) определяется класс ColorHelper.

Смежные вопросы