Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 是否有可应用于DependencyProperty的属性类列表?_Wpf_Silverlight_Xaml_Dependency Properties - Fatal编程技术网

Wpf 是否有可应用于DependencyProperty的属性类列表?

Wpf 是否有可应用于DependencyProperty的属性类列表?,wpf,silverlight,xaml,dependency-properties,Wpf,Silverlight,Xaml,Dependency Properties,我正在处理一个问题,它似乎可以通过对DependencyProperty应用属性来解决。我很好奇,我找不到列出所有应用于DependencyProperties的XXXAttribute类以及这些属性的用途的文档。有人知道这样的事吗?如果没有,可能会发布一些您使用过的属性以及您过去使用它们的目的?也许没有 据我所知,这些属性都不是用来修饰依赖属性的 当然,您可以修饰使用Dependency属性的类属性,甚至可以修饰保存DependencyProperty引用的静态字段:- public clas

我正在处理一个问题,它似乎可以通过对DependencyProperty应用属性来解决。我很好奇,我找不到列出所有应用于DependencyProperties的XXXAttribute类以及这些属性的用途的文档。有人知道这样的事吗?如果没有,可能会发布一些您使用过的属性以及您过去使用它们的目的?也许没有

据我所知,这些属性都不是用来修饰依赖属性的

当然,您可以修饰使用Dependency属性的类属性,甚至可以修饰保存DependencyProperty引用的静态字段:-

public class MyClass : DependencyObject
{
    [PossibleLocationForPropertyAttribute()]
    public string Description
    {
        get { return (string)GetValue(DescriptionProperty); }
        set { SetValue(DescriptionProperty, value); }
    }

    [PossibleLocationForFieldAttribute()]
    public static readonly DependencyProperty DescriptionProperty =
        DependencyProperty.Register("Description", typeof(string), typeof(MyClass), null);
}
但是,当您只有对依赖项属性的引用时,这两种方法都没有帮助。不幸的是,您无法将附加数据附加到依赖项属性,该属性可以在不知道其注册所针对的类型的情况下检索

我从来没有试过这个但是

public MyExtendedPropertyMetaData : PropertyMetaData
{
    public object Token {get; private set;}

    public MyExtendedPropertyMetaData(object token) : PropertyMetaData(null)
    {
        Token = token;
    }

}

public static readonly DependencyProperty DescriptionProperty =
        DependencyProperty.Register("Description", typeof(string), typeof(MyClass),
          new MyExtendedMetaData("Some token could be anything"));
现在给出一个DP,您知道它已注册到
MyClass
,然后:-

var meta = dp.GetMetaData(typeof(MyClass)) as MyExtendedPropertyMetadata;
string tokenData = (string)meta.Token;

如果您知道DP注册的类型,那么与属性用法相比,上面的内容实际上是相当整洁的。如果您不这样做,那么就没有什么可以帮助您。

据我所知,这些属性都不是用来修饰依赖项属性的

当然,您可以修饰使用Dependency属性的类属性,甚至可以修饰保存DependencyProperty引用的静态字段:-

public class MyClass : DependencyObject
{
    [PossibleLocationForPropertyAttribute()]
    public string Description
    {
        get { return (string)GetValue(DescriptionProperty); }
        set { SetValue(DescriptionProperty, value); }
    }

    [PossibleLocationForFieldAttribute()]
    public static readonly DependencyProperty DescriptionProperty =
        DependencyProperty.Register("Description", typeof(string), typeof(MyClass), null);
}
但是,当您只有对依赖项属性的引用时,这两种方法都没有帮助。不幸的是,您无法将附加数据附加到依赖项属性,该属性可以在不知道其注册所针对的类型的情况下检索

我从来没有试过这个但是

public MyExtendedPropertyMetaData : PropertyMetaData
{
    public object Token {get; private set;}

    public MyExtendedPropertyMetaData(object token) : PropertyMetaData(null)
    {
        Token = token;
    }

}

public static readonly DependencyProperty DescriptionProperty =
        DependencyProperty.Register("Description", typeof(string), typeof(MyClass),
          new MyExtendedMetaData("Some token could be anything"));
现在给出一个DP,您知道它已注册到
MyClass
,然后:-

var meta = dp.GetMetaData(typeof(MyClass)) as MyExtendedPropertyMetadata;
string tokenData = (string)meta.Token;

如果您知道DP注册的类型,那么与属性用法相比,上面的内容实际上是相当整洁的。如果您不这样做,则没有任何帮助。

您能举一个您试图解决的问题的例子吗?我想在我的控件上有一个属性,该属性将接受某一组值。我只是使用了一个枚举,但我想可能有一个属性来指示有效值(在设计时,而不是在运行时)。然后我开始思考可能存在哪些属性,这就引发了这个问题。所以问题解决了,我只是好奇。你能举一个例子说明你想解决的问题吗?我想在我的控件上有一个属性,可以接受一组特定的值。我只是使用了一个枚举,但我想可能有一个属性来指示有效值(在设计时,而不是在运行时)。然后我开始思考可能存在哪些属性,这就引发了这个问题。问题解决了,我只是好奇。谢谢。这是有道理的。我以为我以前遇到过属性依赖属性,但这可能是我凭空想象出来的。谢谢。这是有道理的。我以为我以前遇到过属性依赖属性,但这可能是我凭空想象出来的。