自己紹介
初めまして、大学一年生のくぅと言います。 C# と Xamarin が好きです。 まだまだ未熟ですが、色々吸収していきます。
やっていくこと
Xamarin.Forms で Xaml に バインディングした DateTime を string に整形する
環境
Visual Studio 2015 Prism/Unity テンプレート
やったこと
まずは、Xaml に Datetime をバインディングを設定します。StringFormat='{0:mm:ss}'
の部分がキーです。またカスタマイズしたいときは、mm:ss
の部分を変更することで表示するもの(時間を表示するのかとか)を変更できます。
Xaml 側
<Label Text="{Binding Now, StringFormat='{0:mm:ss}'}" />
次に、ViewModel 側にそれに対応したDateTime オブジェクト型の変更通知してくれるプロパティを作ります。
ViewModel 側
private DateTime _now; public DateTime Now { get { return _now; } set { SetProperty(ref _now, value); } } public MainPageViewModel() { Now = DateTime.Now; }
実行してみた (UWP)
実行してみた (Android)
実行してみた (iOS)
まとめ
DateTime オブジェクトをXaml にバインディングするときに、ViewModel 側で毎回 String に整形してたけど、Xaml 側で String に整形できると汎用性とかがあがりそう。
参考サイト
https://forums.xamarin.com/discussion/18170/using-stringformat-in-binding-in-xaml
おすすめ書籍
個人的に読みやすく好きな本たちでした
- 作者:大田 一希
- 発売日: 2016/12/30
- メディア: Kindle版