2017-11-27 20 views
0

WPF - StringFormatをプロパティにバインドできますか?一例として、WPFのテキストボックス、与えられた

<TextBox Text="{Binding Path=blahProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat=\{0:yyyy.MM.dd HH:mm:ss\}}"/> 

は、私が代わりにそこに持っているStringFormatは、基礎となるプロパティ文字列にバインドされていませんか?つまり、xamlにハードコードされているのではなく、View(またはViewModel)のプロパティによって「yyyy.MM.dd HH:mm:ss」が提供される可能性がありますか?

+1

を私は「blahPropertyは、」フォーマットしたい日時であると仮定しています。 つまり、書式設定された文字列を返すdatacontextに別の文字列プロパティを作成することができます。 –

+0

はい、それはオプションになります。しかし、それは複雑になるでしょう(フォーマットされた文字列プロパティはUIで変更されるたびに更新する必要があり、NotifyPropertyChangedはもっと複雑になります) – simonalexander2005

答えて

2

いいえ、は依存プロパティではないため、BindingStringFormatプロパティには{Binding}を設定できません。

DependencyObjectDependencyPropertyにのみバインドすることができます。つまり、バインディングのターゲットプロパティは依存関係プロパティでなければなりません。

あなたはしかし、静的プロパティの値に設定することがあります。

StringFormat={x:Static local:MainWindow.StaticProperty}} 
+0

ありがとう、それは有用な選択肢です。 – simonalexander2005

関連する問題