Проблема Noobie WPF с пространством имен и конвертером - PullRequest
3 голосов
/ 27 января 2010

Пожалуйста, прости вопрос о нубе, но я иду кругами и нуждаюсь в ответах ...

Как бы то ни было, я просматривал эту статью WPF: Как связать RadioButtons с перечислением? , но я просто не могу заставить конвертер распознаваться в файле XAML.

<Window x:Class="Widget.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
    Title="Widget" Height="366" Width="588" WindowStyle="SingleBorderWindow">
    <Window.Resources>
        <EnumBooleanConverter x:Key="enumBooleanConverter" />
    </Window.Resources>
...

У меня есть отдельный файл, содержащий класс EnumBooleanConverter, но приведенная выше ссылка дает мне следующую ошибку:

Ошибка 1 Тег 'EnumBooleanConverter' не существует в пространстве имен XML 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'.

Я пытался добавить ссылки на сборку и затем добавить тег в XAML, но безрезультатно.

<Window x:Class="Widget.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
    xmlns:local="clr-namespace:Widget;assembly=Widget"
    Title="Widget" Height="366" Width="588" WindowStyle="SingleBorderWindow">
    <Window.Resources>
        <local:EnumBooleanConverter x:Key="enumBooleanConverter" />
    </Window.Resources>
...

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

6 голосов
/ 28 января 2010

После сильных царапин на голове (и достаточного количества криков на экране) я обнаружил проблему.

Оказывается, что при идентификации пространства имен не должно быть сборки.

Я определял это так

xmlns:local="clr-namespace:Widget;assembly=Widget"

... Но это должно было быть просто так

xmlns:local="clr-namespace:Widget"
0 голосов
/ 27 января 2010

Убедитесь, что EnumBooleanConverter общедоступен и имеет открытый пустой конструктор.

...