András Tóth‘s professional blog
banditoth.net

Hey there 👋, I’m banditoth a .NET MAUI developer from Hungary.
I write about software development with .NET technologies.

You can find me on:
LinkedIn | Github | StackOverflow | X / Twitter | Threads

Xamarin.Forms: Bindable Property snippet for Visual Studio

This content has 4 years. Some of the information in this post may be out of date or no longer work. Please, read this page keeping its age in your mind.

Use bprop tab tab to generate commands in ViewModels with this snippet

The result of the snippet

Save the snippet file as {name}.snippet in Visual Studio’s folder: C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC#\Snippets\1033\Visual C#

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>Bindable Property</Title>
			<Shortcut>bprop</Shortcut>
			<Description>Xamarin BindableProperty declaration code snippet</Description>
			<Author>banditoth.hu</Author>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>PropertyName</ID>
					<ToolTip>The property's name</ToolTip>
					<Default>Foo</Default>
				</Literal>
				<Literal>
					<ID>Type</ID>
					<ToolTip>The type of the property</ToolTip>
					<Default>object</Default>
				</Literal>
				<Literal>
					<ID>DefaultValue</ID>
					<ToolTip>The default value of the property</ToolTip>
					<Default>null</Default>
				</Literal>
				<Literal>
					<ID>BindingMode</ID>
					<ToolTip>The binding mode of the property</ToolTip>
					<Default>TwoWay</Default>
				</Literal>
				<Literal>
					<ID>PropertyChangedHandler</ID>
					<ToolTip>The property changed handler method</ToolTip>
					<Default>null</Default>
				</Literal>
				<Literal>
					<ID>PropertyChangingHandler</ID>
					<ToolTip>The property changing handler method</ToolTip>
					<Default>null</Default>
				</Literal>
			</Declarations>
			<Code Language="csharp">
				<![CDATA[
        public static readonly BindableProperty $PropertyName$Property = BindableProperty.Create(
                                        propertyName: nameof($PropertyName$),
                                        returnType: typeof($Type$),
                                        declaringType: typeof(View),
                                        defaultValue: $DefaultValue$,
                                        defaultBindingMode: BindingMode.$BindingMode$,
                                        propertyChanged: $PropertyChangedHandler$,
					propertyChanging: $PropertyChangingHandler$);

        public $Type$ $PropertyName$
        {
            get { return ($Type$)GetValue($PropertyName$Property); }
            set { SetValue($PropertyName$Property, value); }
        }
		$end$]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.