Отображение пространства имен .NET WPF XAML для типов Enum - PullRequest
1 голос
/ 10 марта 2009

Я связываю коллекцию объектов моего типа W3CErrorOrWarning с элементами управления в окне WPF.

Одно из его свойств называется «Тип». Он имеет тип W3CErrorOrWarningType , который является простым Enum:

Enum W3CErrorOrWarningType
    ValidationError
    ValidationWarning
End Enum

Я пытаюсь использовать это таким образом ...

<Window ...
        xmlns:enums="clr-namespace:WpfApplication1.XhtmlTextBox.W3CValidator.W3CResponse.W3CErrorOrWarning"
        ... />
    ...
    <DataTemplate>
        <Image Name="TypeIcon" ... />
        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding Type}">
                <DataTrigger.Value>
                    <enums:W3CErrorOrWarningType>
                        ValidationError
                    </enums:W3CErrorOrWarningType>
                </DataTrigger.Value>
                <Setter TargetName="TypeIcon"
                        Property="Source" 
                        Value="images/Error.png"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Type}">
                <DataTrigger.Value>
                    <enums:W3CErrorOrWarningType>
                        ValidationWarning
                    </enums:W3CErrorOrWarningType>
                </DataTrigger.Value>
                <Setter TargetName="TypeIcon"
                        Property="Source" 
                        Value="images/Warning.png"/>
            </DataTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>

Я получаю эту ошибку:

Неопределенное пространство имен CLR. URI 'clr-namespace' относится к Пространство имен 'WpfApplication1.XhtmlTextBox.W3CValidator.W3CResponse.W3CErrorOrWarning' это не входит в сборку.

Мой WpfApplication1 проект содержит пользовательский элемент управления XhtmlTextBox . Этот пользовательский элемент управления содержит класс с именем W3CValidator , который содержит класс с именем W3CResponse , который содержит класс с именем W3CErrorOrWarning , который содержит перечисление с именем W3CErrorOrWarningType .

Как мне ввести пространство имен для этого типа в XAML моего Окна?

1 Ответ

1 голос
/ 10 марта 2009

РЕДАКТИРОВАТЬ: Я думаю, что неправильно, первый раз, но ...

Включаете ли вы имя enum в пространство имен?

Я должен быть:

xmlns:enums="clr-namespace:WpfApplication1.XhtmlTextBox.W3CValidator.W3CResponse

учитывая, что все выше - это пространства имен, а не типы, если W3CResponse является типом, то вы не можете использовать вложенное перечисление непосредственно в XAML, XAML не поддерживает вложенные классы.

Требования для пользовательского класса в качестве элемента XAML

Ваш пользовательский класс не должен быть вложенным класс

...