Как я могу получить x:Name объекта из кода?

Учитывая ссылку на объект, определенный в XAML, это возможный определить то, что (если таковые имеются) x:Name объект имеет, или могу я только делать это путем доступа к FrameworkElement. Свойство имени (если объектом является FrameworkElement)?

6
задан devios1 17 June 2010 в 23:03
поделиться

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; }
    }
}
5
ответ дан 17 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: