С# WPF Attached Properties - Ошибка: "Свойство не существует в пространстве имен XML"

Мне нужно создать новое свойство для существующих элементов управления WPF (Groupbox, текстовое поле, флажок и т.д.), который будет хранить его уровень acess, поэтому я обнаружил Attached Properties. Я использовал в качестве примера этот сайт http://dotnetbyexample.blogspot.com.br/2010/05/attached-dependency-properties-for.html

Все было хорошо, но затем я получил следующую ошибку при попытке использовать ее на каком-то элементе управления...

Ошибка 1 Свойство "DependencyPropertiesHoster.AcessLevel" не существует в пространстве имен XML "пространство имен clr: ImageGUI.App_Code; assembly = ImageGUI". Строка 131 Позиция 97. ImageGUI\MainWindow.xaml 131 97 ImageGUI

Это мой фрагмент кода С#...

namespace ImageGUI.App_Code
{    
    public static class DependencyPropertiesHoster
    {
    //[AttachedPropertyBrowsableForChildren]
    public static readonly DependencyProperty AcessLevelProperty =
      DependencyProperty.RegisterAttached("AcessLevel",
      typeof(EAcessLevel),
      typeof(DependencyPropertiesHoster),
      new PropertyMetadata(AcessLevelChanged));

    // Called when Property is retrieved
    public static EAcessLevel GetAcessLevel(DependencyObject obj)
    {
        if (obj != null)
            return (EAcessLevel)obj.GetValue(AcessLevelProperty);
        else
            return EAcessLevel.Client;
        //return obj.GetValue(AcessLevelProperty) as EAcessLevel;

    }

    // Called when Property is set
    public static void SetAcessLevel(
       DependencyObject obj,
       EAcessLevel value)
    {
        obj.SetValue(AcessLevelProperty, value);
    }

    // Called when property is changed
    private static void AcessLevelChanged(
     object sender,
     DependencyPropertyChangedEventArgs args)
    {
        var attachedObject = sender as UIElement;
        if (attachedObject != null)
        {
            // do whatever is necessary, for example
            // attachedObject.CallSomeMethod(                 
            // args.NewValue as TargetPropertyType);
        }
    }
}

}

Вот мое объявление в окне

xmlns:CustomDepen="clr-namespace:ImageGUI.App_Code;assembly=ImageGUI"

И вот мое использование свойства (где ошибка лежит...)

<GroupBox Name="gbApplications" Header="{DynamicResource applications}" CustomDepen:DependencyPropertiesHoster.AcessLevel="Client">

Наблюдение: EAcessLevel - просто простой перечислитель.

Спасибо заранее.

Ответы

Ответ 1

Спасибо Бобу и Кенту за ответы, которые в значительной степени решили проблему. В этом случае просто измените

xmlns:CustomDepen="clr-namespace:ImageGUI.App_Code;assembly=ImageGUI"

к

xmlns:CustomDepen="clr-namespace:ImageGUI.App_Code"

зафиксировал ситуацию. Все остальное было правильным.

Что касается моего другого комментария о том, как получить указанное значение, это будет выглядеть так:

EAcessLevel currentAcess = (EAcessLevel)gbApplications.GetValue(DependencyPropertiesHoster.AcessLevelProperty);

Спасибо, и надеюсь, что это также поможет кому-то в будущем.