Use bprop tab tab to generate commands in ViewModels with this 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>