我曾经使用过我在过去看到/找到的代码片段,它将我的单个语句转换为私有/公共getter / setter,自从重新安装我的机器以来,我一直无法重复该查找。
例如:
private string serverSMTP = string.empty;
然后我可以按Ctrl +并将其转换为:
private string serverSMTP = string.Empty;
public string ServerSMTP
{
get { return serverSMTP; }
set
{
serverSMTP = value;
RaisePropertyChanged("ServerSMTP");
}
}
有关如何创建某些内容或扩展/片段以便为我处理的任何想法?在较大的项目中,这将为我节省大量时间。
答案 0 :(得分:6)
如果您已经在使用MVVM Light框架,则可以安装随附的代码片段,它们将执行类似的操作。具体来说,“mvvminpc”代码段将执行您要查找的内容,但它不会使用现有字段声明并将其转换为具有propertychanged通知的属性。
代码片段以加速添加新属性(仅限Visual Studio):
mvvminpc将新的可绑定属性添加到ViewModel。
mvvmlocatorproperty将新的ViewModel添加到ViewModeLocator。
mvvmpropa向DependencyObject添加新的附加属性(仅限WPF)。
mvvmpropdp将新的依赖项属性添加到DependencyObject(仅限WPF)。
mvvmslpropa向DependencyObject添加新的附加属性(仅限Silverlight)。
mvvmslpropdp将新的依赖项属性添加到DependencyObject(仅限Silverlight)。
答案 1 :(得分:3)
把这个片段:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Shortcut>propn</Shortcut>
<Title>
Notify Property
</Title>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>Type</ToolTip>
<Default>int</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>Field name</ToolTip>
<Default>fieldName</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>Propery Name</ToolTip>
<Default>PropertyName</Default>
</Literal>
</Declarations>
<Code Language="CSharp">
<![CDATA[
private $type$ $field$;
public $type$ $property$
{
get { return $field$; }
set
{
$field$ = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("$property$"));
}
}
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
在文件propn.snippet中,在此文件夹中: C:\ Users [YOUR_USERNAME] \ Documents \ Visual Studio 2010 \ Code Snippets \ Visual C#\ My Code Snippets
之后您可以使用(propn + tab + tab)快捷方式使用此代码段。
snippet xml非常易于理解,因此您可以轻松地将其调整为您需要的任何内容。