Since code snippets are not that hard to do, here is another one. This one gets all the plumbing for a command in a ViewModel, I used DelegateCommand class to abstract all the INotifyPropertyChanged functionality. See my other posts on the subject. Call this one in VisualStudio by its shortcut, dcmvvm.
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Plumbing for an MVVM DelegateCommand</Title>
<Author>yevgeller</Author>
<Description>Plumbing for an MVVM DelegateCommand for use in a ViewModel</Description>
<Shortcut>dcmvvm</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>cmd1</ID>
<ToolTip>Prefix for a private variable that holds command name.</ToolTip>
<Default>your</Default>
</Literal>
<Literal>
<ID>cmd2</ID>
<ToolTip>Prefix for a property Name that exposes the command to the View.</ToolTip>
<Default>Your</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
DelegateCommand _$cmd1$Command;
public ICommand $cmd2$Command { get { return _$cmd1$Command; } }
private void $cmd2$CommandAction(object obj)
{
throw new NotImplementedException();
}
//add the following line to ViewModel constructor or wherever else you initialize your commands:
_$cmd1$Command = new DelegateCommand(this.$cmd2$CommandAction, this.Can$cmd2$);
private bool Can$cmd2$(object obj)
{
return true;
}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
No comments:
Post a Comment