我喜欢这个问题和价值转换器,所以我有一点可能对你没有帮助,Meleak,但希望那些没有如此严格的风格指南的人可以将多个转换器放在一个文件中:A sn- p 为值转换器存根创建代码。
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Value Converter Stub</Title>
<Shortcut>vc</Shortcut>
<Description>Code snippet for a value converter stub</Description>
<Author>H.B.</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>from</ID>
<ToolTip>The source type.</ToolTip>
<Default>object</Default>
</Literal>
<Literal>
<ID>to</ID>
<ToolTip>The target type.</ToolTip>
<Default>object</Default>
</Literal>
<Literal>
<ID>convertername</ID>
<ToolTip>Name of the converter.</ToolTip>
<Default>My</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[[ValueConversion(typeof($from$), typeof($to$))]
public class $convertername$Converter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
$from$ input = ($from$)value;
$to$ output;
throw new NotImplementedException();
return output;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
$to$ input = ($to$)value;
$from$ output;
throw new NotImplementedException();
return output;
}
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
在 Visual Studio 的 sn-p 文件夹中将其保存为 vc.snippet(或扩展名为 snippet 的其他名称)(对于 x64 上的 VS2010,应为:"%ProgramFiles% (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Visual C#")。你也可以通过Tools -> Code Snippet Manager...导入sn-p。
要使用它,只需键入vc 并按两次制表符,然后在两个类字段中制表符以填写它们。
您可能需要为 ValueConversion-attribute 和 IValueConverter 添加两个引用。
上面的 sn-p 相当冗长,所以这里将是一个更轻的版本(关键字是vcl),它省略了属性和方法框架,并且只有一个可编辑字段直接设置完整的类名:
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Value Converter Stub (Light)</Title>
<Shortcut>vcl</Shortcut>
<Description>Code snippet for a light value converter stub</Description>
<Author>H.B.</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>convertername</ID>
<ToolTip>Name of the converter.</ToolTip>
<Default>My</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[public class $convertername$Converter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
$end$
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>