是否有可能获得x:DependencyObject(Silverlight)的名称?

TDa*_*ver 6 silverlight dependencyobject silverlight-4.0

我有一个DependencyObject(一个交互行为),我想从代码中得到它的x:Name(只是get,not set).可能吗?

编辑:关注AnthonyWJones的回答:

我已将以下代码插入到我的基本行为中:

[EditorBrowsable(EditorBrowsableState.Never)]
public string Name
{
    get { return (string)GetValue(NameProperty); }
    set { SetValue(NameProperty, value); }
}

public static readonly DependencyProperty NameProperty =
            DependencyProperty.Register("Name", typeof(string), typeof(BaseBehavior<T>), new PropertyMetadata(null));
Run Code Online (Sandbox Code Playgroud)

我给了我的行为x:Name,但Name属性没有被填充.

Ant*_*nes 2

如果派生类DependencyObject没有公开Name属性,那么您无法确定分配的x:Name. 该x:Name值仅存储在内部对象树中,并且没有 API 可以将值(对象)解析回键值(名称)。

但是,如果这是您自己的行为,那么只需Name向您的行为添加依赖属性即可。x:Name 会将值分配给Name属性(如果存在)。

如果这是现有行为,您可以继承它来创建具有Name属性的新类。不幸的是,有些行为是密封的,所以你不能总是这样做。