LeoAndo / xamarin-forms-training

traning for Xamarin.Forms
0 stars 1 forks source link

dataBinding(データバインディング) #59

Open LeoAndo opened 3 years ago

LeoAndo commented 3 years ago

基本的な概念

スクリーンショット 2021-09-06 20 32 53

refs

https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter16

LeoAndo commented 3 years ago

ターゲット、ソースに関してのルール

"ターゲット" プロパティは BindableProperty によってサポートされている必要がある "ソース" プロパティは、通常、INotifyPropertyChanged を実装するクラスのメンバー(BindableObject では INotifyPropertyChanged が実装されている)

LeoAndo commented 3 years ago

dataBindingをコードで定義する方法 (唯一の方法ではない)

LeoAndo commented 3 years ago

BindingContext

LeoAndo commented 3 years ago

BindingModeについて

通常は、dataBindingはソースプロパティの値をターゲットプロパティに設定するが、 データの流れがそれほど明確でないこともある。

ターゲットとソースの関係は、BindingMode列挙型のメンバーによって定義されている。

ほとんどのBindingPropertyのデフォルトのBindingModeはOneWayだが、 例外がいくつかあり、デフォルトがTwoWayのプロパティを持つものもある

クラス TwoWayであるプロパティ
Slider Value
Stepper Value
Switch IsToggled
Entry Text
Editor Text
SearchBar Text
DatePicker Date
TimePicker Time
LeoAndo commented 3 years ago

文字列の書式設定

Bindingクラスには、StringFromatというプロパティが定義されています。 このプロパティを利用すれば、.NETの書式設定文字列全体をカバーできる。 StringFormatに指定する書式文字列は、プレースホールダー"{0}"と、ソースデータ型に適した書式設定を含んでいなければならない。

例えば、小数点以下3桁のdouble型の値を表示するには"{0:F3"}"を指定する。

LeoAndo commented 3 years ago

dataBindingの値コンバーター

dataBindingで型変換や値変換が必要な場合は、IValueConverterを実装したクラスを使う

Pull Request