3

我已按照将自定义属性添加到 XAML 中的元素中的说明进行操作?但不幸的是,设计师告诉我他找不到该元素,并且在启动程序时我得到一个 XamlParserException 并显示消息Cannot set unknown member '{clr-namespace:myNs}MediaElementProperties.MediaId'

我的设置:

  • XamlReader.Load(fileStream)使用显示命令动态加载的 Xaml-Page
  • 使用如下代码的内容页面本身:

    <MediaElement myNs:MediaElementProperties.MediaId="test" ... />
    

    其中 myNs 定义为

     xmlns:myNs="clr-namespace:MyNamespace"
    
  • MediaElementProperties 的定义如下所示:

    namespace MyNamespace {
    public static class MediaElementProperties
    {
        public static readonly DependencyProperty MediaIdProperty = 
           DependencyProperty.Register("MediaId", typeof(string), typeof(MediaElementProperties), new FrameworkPropertyMetadata(string.Empty));
    
        public static string GetMediaId(UIElement element)
        {
            return (string)element.GetValue(MediaIdProperty);
        }
    
        public static void SetMediaId(UIElement element, string value)
        {
            element.SetValue(MediaIdProperty, value);
        }
    }}
    

你有什么想法为什么我不断收到异常?

4

1 回答 1

7

RegisterAttachedZabavsky 所述附加属性需要注册。

使用时,XamlReader您可能需要完全限定您的xmlns,即使代码在同一个程序集中,即

xmlns:myNs="clr-namespace:MyNamespace;assembly=MyApplication"
于 2012-08-29T09:26:39.550 回答