2

Если вставить этот фрагмент кода propdp, он не использует nameof оператора для имени свойства в первом параметре метода DepencendyProperty.Register и создает что-то вроде этого:Почему фрагмент кода «propdp» не использует имя оператора для имени зарегистрированного свойства?

public string Text 
    { 
     get { return (string)GetValue(TextProperty); } 
     set { SetValue(TextProperty, value); } 
    } 

    // Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty TextProperty = 
     DependencyProperty.Register("Text", typeof(string), typeof(MyContentControl), new PropertyMetadata("")); 

и obviusly может будет лучше, если вы используете оператор nameof, как в следующем примере:

public string Text 
    { 
     get { return (string)GetValue(TextProperty); } 
     set { SetValue(TextProperty, value); } 
    } 

    // Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty TextProperty = 
     DependencyProperty.Register(nameof(Text), typeof(string), typeof(MyContentControl), new PropertyMetadata("")); 
+0

'nameof' относительно новый, и я не уверен, что фрагменты могут определить, какая версия C# компилируется вашим проектом. Если вы работаете как с старыми, так и с новыми проектами C#, а фрагменты не могут определить, какая версия C# используется, то это, вероятно, причина. Храните фрагмент, поддерживающий наследие, так что он работает независимо от того, что иногда, а не «сломан» иногда (для более старых проектов). – Kritner

+0

или его можно было просто упустить – Kritner

+0

Или создать новый фрагмент кода, используя имяof, например «npropdp», чтобы использовать в случае, если вы используете C# 6. – joseangelmt

ответ

4

вы можете изменить фрагмент кода, следуя следующие шаги:

  • Найдите файл фрагмента. Выберите пункт меню Инструменты/Менеджер фрагментов кода .... Откроется диалоговое окно «Менеджер фрагментов кода».
  • В Язык, выберите CSharp.
  • Открыть NetFX30 и выбрать Определить зависимое свойство. Вы увидите путь к файлу в Местонахождение. Должно быть в C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC# \ Snippets \ 1033 \ NetFX30

Открыть файл и изменить определение макроса из

public static readonly DependencyProperty $property$Property = 
DependencyProperty.Register("$property$", typeof($type$), typeof($ownerclass$), new PropertyMetadata($defaultvalue$)); 

к

public static readonly DependencyProperty $property$Property = 
DependencyProperty.Register(nameof($property$) , typeof($type$), typeof($ownerclass$), new PropertyMetadata($defaultvalue$)); 

и сохранить (не забудьте открыть текстовый редактор с правами администратора).

Restart Visual Studio.

 Смежные вопросы

  • Нет связанных вопросов^_^