View and ViewModel pattern code snippet

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>ViewModel pattern snippet</Title>
			<Shortcut>viewmodel</Shortcut>
			<Description>Creates a view and viewmodel interface and a concreate view model </Description>
			<Author>Alex Boyne-Aitken</Author>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>name</ID>
					<ToolTip>Base name</ToolTip>
					<Default>Class</Default>
				</Literal>
			</Declarations>
			<Code Language="csharp"><![CDATA[
    public interface I$name$View
    {
        I$name$ViewModel Model { get; set; }
    }

    public interface I$name$ViewModel
    {
        I$name$View View { get; }
    }

    class $name$ViewModel : I$name$ViewModel
    {
        private readonly I$name$View view;

        public $name$ViewModel(I$name$View view)
        {
            this.view = view;
            view.Model = this;
        }

        public I$name$View View
        {
            get { return view; }
        }
    }
			$end$]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

Download

Leave a Reply