[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
2022-04-22 05:01:51
質問
とは何ですか? 差 この2つのバインディングの違いについて。
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{TemplateBinding Property=Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
そして
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}">
<ContentPresenter />
</Border>
</ControlTemplate>
?
解決方法は?
TemplateBindingはちょっと違う。MSDNドキュメントは、ソフトウェアの機能について単刀直入にSDEにクイズを出さなければならない人が書いていることが多いので、ニュアンスがちょっと違うんです。
TemplateBindingsは、コンパイル時に制御テンプレートで指定された型に対して評価されます。 これにより、コンパイルされたテンプレートをより速くインスタンス化することができます。 templatebindingで名前をいじくるだけで、コンパイラがフラグを立てるのがわかると思います。
バインディングのマークアップは、実行時に解決されます。 実行速度は遅くなりますが、バインディングはテンプレートで宣言された型では表示されないプロパティ名を解決してくれます。バインディングの処理はアプリケーションのCPUをほとんど消費しないので、実行速度が遅いというのは相対的なものだと言えます。 もし、コントロールテンプレートを高速で動かしていたら、気づくかもしれません。
練習として、TemplateBindingを使えるときは使い、Bindingを怖がらないようにしましょう。
関連
-
例外の解決方法 GDI+でジェネリックエラーが発生しました。
-
WPFバインディング(データバインディング)の使用方法
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?
-
[解決済み] SelectedItem、SelectedValue、SelectedValuePathの違いについて
-
[解決済み] [Solved] StackPanelの子要素をスペースアウトさせるには?
-
[解決済み] wpf: ボタンがコマンドによって無効にされたとき、ツールチップを表示する方法は?
-
[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
-
[解決済み] WPFでイベント処理のためにリソース辞書の後ろにコードを設定することは可能ですか?
-
[解決済み] WPF: スクロールバー付きItemsControl (ScrollViewer)
-
[解決済み] データバインディングでWPFハイパーリンクのテキストを設定するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ラジオボタンをenumにバインドするには?
-
[解決済み] StackPanelの子パネルが下方向に最大限のスペースを埋めるようにするには?
-
[解決済み] [Solved] StackPanelの子要素をスペースアウトさせるには?
-
[解決済み] WPFのテキストラップとWrapWithOverflowの比較
-
[解決済み] wpf: ボタンがコマンドによって無効にされたとき、ツールチップを表示する方法は?
-
[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
-
[解決済み] Generic.xamlの特徴とは?
-
[解決済み] MVVMテンプレートの好例
-
[解決済み] グリッドカラムの幅・高さを設定する際の「Auto」と「*」の違いは何ですか?
-
[解決済み] XAMLで複数のバリューコンバータを連結する方法はありますか?