给定对 XAML 中定义的对象的引用,是否可以确定对象具有什么(如果有)x:Name,或者我只能通过访问 FrameworkElement.Name 属性来执行此操作(如果对象是 FrameworkElement)?
问问题
7094 次
1 回答
7
您可以采取的一种方法是首先检查对象是否为 a FrameworkElement
,如果不是,请尝试反射以获取名称:
public static string GetName(object obj)
{
// First see if it is a FrameworkElement
var element = obj as FrameworkElement;
if (element != null)
return element.Name;
// If not, try reflection to get the value of a Name property.
try { return (string) obj.GetType().GetProperty("Name").GetValue(obj, null); }
catch
{
// Last of all, try reflection to get the value of a Name field.
try { return (string) obj.GetType().GetField("Name").GetValue(obj); }
catch { return null; }
}
}
于 2010-06-18T01:22:22.213 回答