Как я могу получить x: имя объекта из кода?
Имея ссылку на объект, определенный в XAML, можно ли определить, какое (если есть) x:Name имеет объект, или я могу сделать это только путем доступа к свойству FrameworkElement.Name (если объект является FrameworkElement)?
1 ответ
Решение
Один из подходов, который вы можете предпринять, это сначала проверить, является ли объект 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; }
}
}