I use this one a lot and it has a placeholder for the default value and the call-back method I am even assigning the instance that called the call-back to a property in the snippet.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>Dependency Property With CallBack</Title> <Shortcut>propdpCallBack</Shortcut> <Description>Creates a dependency property with it's callback method</Description> <Author>Jose Sanchez</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>PublicName</ID> <Default>PropertyName</Default> <ToolTip>Public name of the depencency property</ToolTip> </Literal> <Literal> <ID>type</ID> <Default>string</Default> <ToolTip>Type of the property</ToolTip> </Literal> <Literal> <ID>ParentClassType</ID> <Default>UserControl</Default> <ToolTip>Type of the parent class of the dependency property</ToolTip> </Literal> <Literal> <ID>DefaultValue</ID> <Default>string.Empty</Default> <ToolTip>Default value of the dependency property</ToolTip> </Literal> <Literal> <ID>CallBackName</ID> <Default>PropertyCallBackName</Default> <ToolTip>Name of the callback method that will be triggered when the depencency property has changed</ToolTip> </Literal> </Declarations> <Code Language="csharp"><![CDATA[public $type$ $PublicName$ { get { return ($type$)GetValue($PublicName$Property); } set { SetValue($PublicName$Property, value); } } // Using a DependencyProperty as the backing store for $PublicName$. This enables animation, styling, binding, etc... public static readonly DependencyProperty $PublicName$Property = DependencyProperty.Register("$PublicName$", typeof($type$), typeof($ParentClassType$), new PropertyMetadata($DefaultValue$, new PropertyChangedCallback($CallBackName$))); private static void $CallBackName$(DependencyObject obj, DependencyPropertyChangedEventArgs e) { $ParentClassType$ Changed$ParentClassType$ = (obj as $ParentClassType$); //TODO: Implement some actions in Changed$ParentClassType$ }]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>I hope you find it as useful as I do.
By the way, you can find more info about how creating and importing your code snippets here.
No comments:
Post a Comment