2016-09-20 3 views
-3
Button btn = new Button(); 
btn.Name = "R-F"; // ArgumentException...not a valid value 

enter image description hereUnderscore не позволяют имя свойства элемента управления

btn.Name = "RF"; // OK 

Почему я не могу назвать контроль со строкой, которая содержит подчеркивание или дефис, в то время как я могу назвать класс или объектную переменную с одним?

+3

Вы не можете назвать класс дефисом. – Lloyd

+2

Вы должны очистить свой вопрос, хотя вы указываете дефис в предложении, весь вопрос читает подчеркивание, но вы используете знак дефиса или минус. –

+2

Этот вопрос просто неправильный. Вы ** можете ** называть кнопку с ** подчеркиванием **, но вы используете ** hyphen **, который не разрешен. Пожалуйста, уточните, что именно вы просите о помощи здесь. –

ответ

2

Наиболее вероятно, что имя будет использоваться как идентификатор в XML.

В любом случае, limitiation четко изложена в документации по FrameworkElement.Name, который гласит:

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

В соответствии с документацией подчеркивания являются официальными. Hyphens, однако, нет.

0

Вы не можете использовать дефис в имени класса/объекта. Подчеркивания прекрасны.