問題タブ [templatebinding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - KnockoutJSでのネストされたテンプレートのバインド
コードとアプローチを示す前に、目前の問題が何であるかを説明させてください。誰かがより良い解決策を持っているかもしれません。問題は、特定の基準でグループ化された配列のリストがあるということです。基準ごとにリスト/セクションをレンダリングする必要があります。各セクションには、HTMLとしてもレンダリングする必要のあるオブジェクトのリストが含まれています。
KnockoutJSは初めてです-昨日使い始めました。しかし、目前の問題を考慮して、私はドキュメントで観察可能な辞書または同様のものを検索しました。幸い、ko.observableDictionaryプラグインを見つけました。だから私はこれでうまくいくはずだと思い、次のコードを書きました(概念実証):
しかし、私は次のエラーを受け取り続けます:
エラー:バインディングを解析できません。メッセージ:TypeError:$data.titleは関数ではありません。バインディング値:css:{defaultimage:$ data.title()!='architect'}
問題は$data
、テンプレートのデータコンテキストを参照していないことだと思います。しかし、どうすればこれを解決できますか?
microsoft-metro - Metro / Windowsストアアプリ:ControlTemplateのTemplateBindingソースとしてForegroundを使用できませんか?
コントロールのフォアグラウンドの値を使用して、ControlTemplateのVisualStateColorAnimationのソースとして使用したいと思います。
私のテンプレート定義は、主にToggleButtonの標準テンプレートに似ていますが、いくつかのmodがあります(<<< ..... >>>とマークされています)。
そのため、アニメーションがマウスオーバーアニメーションの一部として設定された前景色(#FFFF0000)を使用することを期待していましたが、まったく何もしませんでした。アニメーション定義にTo="#FFFF0000"と書くと、期待どおりの結果が得られますが、アニメーションの色を動的に保ち、アプリのToggleButtonごとに異なる色にしたいです。
これを修正する方法はありますか?
お願いします!
編集:1つのGradientStopを{TemplateBinding Foreground}にバインドする必要があるContentPresenterにLinearGradientBrushを使用して新しいRectangleを追加することにより、上記と同様の効果を達成しようとした後、問題の理由を明らかにする可能性のあるエラーが発生します。タイプ「Windows.UI.xaml.DependencyProperty」をタイプ「System.Windows.DependencyProperty」に変換することはできません。」{TemplateBinding ...}が間違ったタイプのDependencyPropertyを生成するか、GradientStopがWindowsストアアプリで間違ったタイプを予期しているようです。でも!XAMLでの明示的な型キャストまたはその他の回避策によってこれを克服する方法はありますか?
ありがとう
wpf - ExitActions のアニメーションによる初期状態への復元
タブ コントロールのテンプレートを作成しました。それがすることは、境界線の背景を取り、マウスオーバーでアニメーション化することです。
マウスが離れると、Background プロパティから現在の値を読み取り、それに応じて設定する必要があります。
問題は
To="{TemplateBinding Background.GradientStops[0].Color}"
部分が機能していません。そこには何を書けばいいの?
listbox - カスタム ボタン コントロール内に ListBox または ItemsControl をバインドする
こんにちは、私は XAML を初めて使用し、カスタム トグル ボタン コントロールを作成しようとしています。私のコントロールには、コンパイルまたは実行時のエラーは発生しませんが、データは表示されない次のコードがあります。通常のテンプレートバインディングを実行しようとするとエラーが発生し続けました。調査の結果、相対ソースを使用する必要があることがわかりました。しかし、リストを作成することはできません。誰かが私が間違っていることを案内できますか? または、これを行うためのより良い方法があれば?
目的: リスト コントロールを持つチェック可能なコントロールを作成します。
XAML Generic.xml: (このコードはトグル ボタン コントロール テンプレート内にあります)
PlainToggleButton.cs のコード:
コード MainWindow.xaml:
c# - TemplateBindingを「自動」の高さと幅に適用する方法
リソース辞書:
C#の場合:
破線の境界線を正しく取得できます。
次のように、テキストボックスの高さと幅を指定せずにテキストボックスをContentControlにラップすると、次のようになります。
結果は見落とされます:
理由は次のとおりです。
スタイルでは、以下を使用して境界線の幅と高さを設定します。それらはTextBoxの幅と高さに依存しています。
TextBoxをContentControlにラップすると、TextBoxのWidthとHeightがAutoに設定され、 ContentControlに従って変更されます。ただし、スタイルは正確な高さと幅を取得できなくなります。
私の質問は:
ContentControl内にラップされたTextBoxに対してスタイルを正しく表示する方法はありますか?ContentControlはドラッグ可能であるため、 TextBoxの内側に正確な高さと幅を設定できません。
knockout.js - ノックアウト'テンプレート'バインディングを独自のカスタムバインディングでラップする場合の例外
テンプレートバインディングに基づいてカスタムバインディングを作成しようとしています。アイデアは、独自のビューモデルクラスを持つテンプレートを持つことですが、そのクラスのインスタンスを親ビューモデルに追加したくありません(少なくともコードではありません。実行時にインスタンスを追加しても問題ありません)。
ここで達成しようとしていることを理解するには、例を示します。高度なスライダーを作成したい、スライダーのhtmlをテンプレートに入れたくない、スライダーは独自のクラスである必要があるが、スライダーのビューモデルインスタンスを追加したくない親ビューモデルに。これが私のコードです。最初は機能し、最初はテンプレートをレンダリングしているように見えますが、例外がスローされ、理由がわかりません。ここで作業コードを表示
html:
js:
c# - DependencyProperty への適切なテンプレート バインド
私がそれを書いたとき、これは正しくなかったことを知っており、別の回答のほとんどの回答を収集することができましたが、最後のビットを把握できません。バインディングは、UI から DependencyProperty に渡されます (また、コントロールが作成されるときは別の方法で渡されます)。
マイ テンプレート (IsChecked バインディングをインスタンスに移動する必要があります):
インスタンス:
そしてセッター (もちろん、ブール値の AllFeatureTypesChecked DependencyProperty があります):
参考までにDPはこちら
これは本当に楽しいもので、SO の素晴らしい人たちなしではできませんでした! ありがとう!
更新: わかりました、今私はこれを持っています (ブレインストーミング):
次のようにインスタンス化されます。
ただし、コントロールが作成された後、DP に設定された値を UI に表示することはできません。
...確かにここで少し助けが必要です、ありがとう。
.net - TemplateBindingsでMultiBindingを使用する
WPFでカスタムコントロールを作成しています。私はまだTemplateBindingが何であるかについての詳細を学んでいます(カスタムコントロールでよく使われます)。
私が気付いているのは、MulitBinding内でTemplateBindingを使用できないように見えることです。
私がこれを試すとき:
このエラーが発生します:
値「System.Windows.TemplateBindingExpression」はタイプ「System.Windows.Data.BindingBase」ではなく、このジェネリックコレクションでは使用できません。
パラメータ名:値
私は何かが足りないのですか?これを機能させる方法はありますか?
これは私が行っている回避策ですが、一種のハックです:
ListBoxesを依存関係プロパティにバインドしてから、マルチバインディングで要素をリストボックスのItemsSourceにバインドします。
上で述べたように、これはハックのように感じます。コンポーネントの1つとしてTemplateBindingを使用してMultiBindingを実行する正しい方法があるかどうかを知りたいと思います。
wpf - templatebinding背景色WPFに基づいてコンテンツテンプレートのlineargradientオフセットカラーを変更する
わかりましたので、ここに問題があります。これを機能させる方法を見つけようとしています:
カスタム ボタンを作成するには、次の ControlTemplate を検討してください。
このコントロール テンプレートはこのスクリプトの一部を形成し、ご覧のとおり、メイン グリッドで概説されているボタン宣言から背景色を取得しようとしています。
さて、主な質問はこれです..
質問 1: templatebinding を使用して背景色を取得しないボタンの ControlTemplate でエラー コメントがマークされている行が表示されるのはなぜですか? 無地を使用していれば問題なく機能していたので、この方法で機能しない理由はわかりません. また、その理由を教えてください。
以下はまだ少し不明確であり、それらが問題に関連しているかどうかはわかりません。誰かがそれらをクリアできれば、それは素晴らしいことです.
質問 2: これら 2 つの TargetType 値 "Button" と "{x:Type Button}" の違いは何ですか。それらが同等のタイプであることは知っていますが、2つに違いはありますか? MSDN を読みましたが、実際の違いはそれほど明確ではありません。
質問 3: いつ x:Name を使用し、いつ Name を使用しますか? 違いはまた不明です。
質問 4: x:Static は何をしますか?
jquery - ノックアウト (テンプレート バインディング) : javascript(JQuery) 関数がテンプレート内から呼び出されない
すべてのスクリプトが参照されているメイン ページがあり、本文内にテンプレート データ バインディングを持つ duv コンテナがあり、htm がそこにバインドされています。
問題は、Jquery によって制御されている機能が正しく機能していないことです。たとえば、日付ピッカーは、JavaScript が参照されているメイン ページに配置すると機能しますが、テンプレートにバインドされている htm 内では機能しません。
すべてのライブラリが適切にロードされていますが、テンプレート内で呼び出されたときに jquery 機能が機能しません。
例: メインページ:
これで、ビューが実行時にメイン ページに読み込まれます。ビュー内に日付ピッカーがありますが、機能しません。それをメインページに入れると、うまくいきます。