FrameworkElement.Name проблема

Я пытаюсь установить свойство Name страницы в конструкторе:

public partial class PageListView : Page
{
    public PageListView(string title)
    {
        InitializeComponent();
        Name = title;
    }
}

Тем не менее, я часто получаю следующее сообщение об ошибке.

'x' is not a valid value for property 'Name'.

куда x кажется почти чем угодно, детализация исключений не дает никакой полезной информации (например, InnerException - ноль).

Кто-нибудь знает, что здесь происходит?

2 ответа

Решение

Свойство Name обычно следует правилам идентификаторов C#/VB.NET (т. Е. Полей). На основании документации:

Строковые значения, используемые для Name, имеют некоторые ограничения, налагаемые базовой директивой x:Name, определенной в спецификации XAML. В частности, имя должно начинаться с буквы или символа подчеркивания (_) и содержать только буквы, цифры или символы подчеркивания.

Исходя из передаваемого вами параметра (то есть заголовка), кажется, что вы можете его нарушить. Но вам нужно привести несколько конкретных примеров, чтобы быть уверенным.

Конечно, через несколько минут после публикации я понял, что происходит.

Поскольку FrameworkElement.Name используется для создания ссылок на объекты, необходимо убедиться, что строка содержит только допустимые символы для имени переменной экземпляра объекта.

Вместо этого используйте заголовок или другое свойство простого текста, если вы действительно не хотите устанавливать x:Name свойство для ссылки.

Другие вопросы по тегам