[解決済み] WPF StringFormat on Label Content (ラベルコンテンツにおける StringFormat)
2023-04-06 20:59:15
質問
文字列結合を
Amount is X
ここで
X
はラベルにバインドされたプロパティです。
多くの例を見てきましたが、以下はうまくいきません。
<Label Content="{Binding Path=MaxLevelofInvestment,
StringFormat='Amount is {0}'}" />
こんな組み合わせも試してみました。
StringFormat=Amount is {0}
StringFormat='Amount is {}{0}'
StringFormat='Amount is \{0\}'
さらに、バインディングプロパティのデータ型を
int
,
string
と
double
. 何も動作しないようです。これは非常に一般的な使用例ですが、サポートされていないようです。
どのように解決するのですか?
これがうまくいかない原因は
Label.Content
プロパティが
Object
で、かつ
Binding.StringFormat
のプロパティにバインドするときのみ使用されます。
String
.
何が起きているかというと
-
は
Binding
は、あなたのMaxLevelOfInvestment
の値をボックス化し、それをLabel.Content
プロパティにボックス化された10進数値として格納します。 -
Labelコントロールは、テンプレートに
ContentPresenter
. -
から
ContentTemplate
が設定されていない。ContentPresenter
を探します。DataTemplate
に対して定義されたDecimal
型に定義されています。 それがない場合、デフォルトのテンプレートが使用されます。 -
が使用するデフォルトのテンプレートは
ContentPresenter
は、ラベルのContentStringFormat
プロパティを使って文字列を表示します。
2つの解決策が考えられます。
- Binding.StringFormatの代わりにLabel.ContentStringFormatを使う、または
- Label.Contentの代わりにTextBlock.TextのようなStringプロパティを使用します。
Label.ContentStringFormatの使い方を説明します。
<Label Content="{Binding Path=MaxLevelofInvestment}" ContentStringFormat="Amount is {0}" />
TextBlockの使い方を説明します。
<TextBlock Text="{Binding Path=MaxLevelofInvestment, StringFormat='Amount is {0}'}" />
注:上記の説明では、わかりやすくするために、1つの詳細を省略しました。 それは
ContentPresenter
は実際にはそれ自身の
Template
と
StringFormat
プロパティがありますが、ロード中にこれらは自動的にテンプレートバインドされます。
ContentTemplate
と
ContentStringFormat
のプロパティは
Label
のように見えるので、あたかも
ContentPresenter
が実際に使っているのは
Label
のプロパティを使用しています。
関連
-
[解決済み] WPFでデータトリガーに複数の条件を指定するには?
-
[解決済み] DataTrigger where value is NOT null?
-
[解決済み] WPF フォントのぼやけ問題- 解決策
-
[解決済み] MVVMテンプレートの好例
-
[解決済み] StringFormatを使用してWPF XAMLバインディングに文字列を追加する
-
[解決済み] WPFウィンドウのハンドルを検索する
-
[解決済み] WPFにDesignModeプロパティはありますか?
-
[解決済み] WPFでNumericUpDownに相当する良いものは?[クローズド]
-
[解決済み] WPF バインディング StringFormat Short Date String
-
[解決済み] WPFエラー。エラー: ターゲット要素に対応する FrameworkElement が見つかりません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] WPFのテキストラップとWrapWithOverflowの比較
-
[解決済み] StringFormatを使用してWPF XAMLバインディングに文字列を追加する
-
[解決済み] WPF: スクロールバー付きItemsControl (ScrollViewer)
-
[解決済み] ItemsControlの仮想化?
-
[解決済み] WPFでNumericUpDownに相当する良いものは?[クローズド]
-
[解決済み] WPF バインディング StringFormat Short Date String
-
[解決済み] HorizontalAlignment=Stretch、MaxWidth、Left alignedを同時に使用できますか?
-
[解決済み] JavaFXはWPFと比較してどうですか?[クローズド]
-
[解決済み] WPFのバインディングで「{Binding Path=.}」とはどういう意味ですか?
-
[解決済み] WPFでGridViewColumnのデータを自動サイズ調整し、右揃えにする方法は?