こんにちは。エクセルソフトの田淵です。
PropertyChanged 用のコードスニペットや BindableProperty 用のコードスニペットはあるとないとではかなり開発効率に差がありそうです。@ticktackmobile さんのトレーニング中に BindableProperty はコードスニペットで。というお話をもらい、PropertyChanged 用は作ってましたが BindableProperty 用は無かったなと思い、エントリーを書きました。一つ新発見もありましたので、感謝です。
今回は BindableProperty 用のスニペットを作ってみましょう。
Visual Studio の場合
<?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>binp</Shortcut> <Description>Code Snippet for Bindable Property</Description> <Author>Yoshito Tabuchi</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>type</ID> <ToolTip>property type</ToolTip> <Default>double</Default> </Literal> <Literal> <ID>property</ID> <ToolTip>property name</ToolTip> <Default>MyProperty</Default> </Literal> <Literal default="true" Editable="false"> <ID>classname</ID> <ToolTip>Class name</ToolTip> <Function>ClassName()</Function> <Default>ClassNamePlaceholder</Default> </Literal> </Declarations> <Code Language="csharp"><![CDATA[public static readonly BindableProperty $property$Property = BindableProperty.Create(nameof($property$), typeof($type$), typeof($classname$), default($type$)); public $type$ $property$ { get { return ($type$)GetValue($property$Property); } set { SetValue($property$Property, value); } } ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
Bindable Property の沢山ある引数のうち、必須項目を含む最初の4項目を用意しました。
上記ファイルを xxxx.snippet
と任意の名前で Visual Studio 2015 フォルダ\Code Snippets\Visual C#\My Code Snippets
フォルダに配置しましょう。
後は <Shortcut>
に登録した短縮文字で呼び出すだけです。
こんな感じで2ヶ所入力すれば完成です。ポイントは、コード スニペットの関数 にあるように、ClassName()
を使うと「挿入されたスニペットが格納されているクラスの名前を返します。」というところですね。
<Literal default="true" Editable="false"> <ID>classname</ID> <ToolTip>Class name</ToolTip> <Function>ClassName()</Function> <Default>ClassNamePlaceholder</Default> </Literal>
の部分です。
Xamarin Studio の場合
Xamarin Studio はファイルではなく、設定で行います。設定を開き、[テキストエディター>コードテンプレート]の[追加]ボタンをクリックします。
上記のような感じで、[ショートカット]に任意の短縮文字、[グループ]は C#、[説明]に任意の説明、[Mime]に text/x-csharp を指定し、[拡張可能なテンプレート]にチェックを入れます。
[テンプレートテキスト]の部分は VS と同じで大丈夫です。
public static readonly BindableProperty $property$Property = BindableProperty.Create(nameof($property$), typeof($type$), typeof($classname$), default($type$)); public $type$ $property$ { get { return ($type$)GetValue($property$Property); } set { SetValue($property$Property, value); } }
右側のドロップダウンでテキスト内で指定したリテラルの仕様を決められます。クラス名を取ってくる Function が VS と異なり、GetCurrentClassName()
となりますのでご注意ください。
後は呼び出すだけ。
便利ですね。どんどん使っていきましょう。
XAML 用のコードスニペットの記事は以下で以前書きましたので合わせてどうぞ
Xamarin 気になった方は
是非 ダウンロード して触ってみてください。Visual Studio 2015 をご利用の方は Update 3 にアップデートする際にカスタムインストールで Xamarin を追加しましょう。 学習用リソース や JXUG リンクページ に参考資料を纏めてますので併せてどうぞ。
Xamarin の導入支援サービスを始めました。ベースは基本的なアプリを一緒に作ることで Xamarin を使えるようになって頂く内容ですが、ご要望に応じて講習内容のカスタマイズも可能です。詳しくは田淵までお問い合わせください(^^)
有償セミナー、トレーニング | Xamarin : XLsoft エクセルソフト
Xamarin の情報が欲しい方はこのブログも購読いただいたり、私のTwitterアカウントをフォローいただいたりすると嬉しいです。
私が所属している エクセルソフト の宣伝を少しさせてください。弊社は開発者向けの様々なソフトウェアを扱っています。おなじみの ReSharper (JetBrains)、 や Atlassian の JIRA, Confluence、Office/PDF ファイルを .NET/Java で操作するライブラリ Aspose(アスポーズ)、Windows アプリ、Web ページ、iOS/Android アプリの UI テストができる TestComplete などお勧めです(^^) また、Visual Studio Professional/Enterprise with MSDN も販売してますし、日本で売っていない海外のソフトウェア、開発ツールなどを弊社経由で日本円で購入頂くことも可能です。ご興味あれば 弊社ページ を覗いてみてください。
以上です。