Мне нравятся конвертеры вопросов и значений, поэтому я хочу внести небольшой вклад, который, возможно, не поможет вам, Мелик, но надеюсь, что те, у кого нет таких строгих правил стиля и, таким образом, могут поместить несколько конвертеров в один файл: фрагмент, который создает код для заглушки конвертера значений.
<?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>
Сохраните это как vc.snippet
(или что-то еще с расширением snippet
) в папке фрагмента Visual Studio (для VS2010 на x64 это будет: "%ProgramFiles% (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Visual C#"
). Вы также можете импортировать фрагмент через Tools -> Code Snippet Manager...
.
Чтобы использовать его, просто наберите vc
и дважды нажмите на вкладку, затем нажмите на два поля класса, чтобы заполнить их.
Может потребоваться добавить две ссылки для ValueConversion
-атрибута и IValueConverter
.
Приведенный выше фрагмент довольно многословен, поэтому здесь будет более легкая версия (ключевое слово 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>