スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: スポンサー広告

DataBindingのStringFormatって

前の記事で使っているデータバインディングで、StringFormatを使って書式を指定している。

<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Birthday,
Mode=OneWay,
StringFormat=yyyy/MM/dd}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>

このStringFormatはなかなかの曲者で、ソース側のプロパティの型がStringの時は動かないという仕様になっている。
つまり、ItemsSourceに設定されたリストのアイテムとなったクラスで、

private DateTime birthday_;

public DateTime Birthday {
get {return birthday_;}
set {
if (birthday_ != value) {
birthday_ = value;
this.NotifyPropertyChanged("Birthday");
}
}
}
の時は動くけど、

private string birthday_;

public string Birthday {
get {return birthday_;}
set {
if (birthday_ != value) {
birthday_ = value;
this.NotifyPropertyChanged("Birthday");
}
}
}
の時は動かない事になる。StringFormatを指定しているのに、書式通りにならないって時の原因は、だいたいコレ。
StringFormatで指定できない時は、コンバータクラスを使うことになる。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。