問題タブ [contenttemplateselector]

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.

0 投票する
2 に答える
760 参照

wpf - SelectTemplate メソッドがデバッグ モードで 2 回実行されるのはなぜですか?

このクラスをデバッグすると、SelectTemplate メソッドが 2 回実行されますが、なぜですか?

最初の項目は常に null です。

0 投票する
3 に答える
10288 参照

wpf - ContentTemplateSelector は一度だけ呼び出され、常に同じデータテンプレートを表示します

サンプル デモ VS 2010 RC サンプル プロジェクトを作成しました。これは、本番プロジェクトで MVVM を使用して同じエラーが発生したためです。

私のサンプル デモ プロジェクトでは、サード パーティの依存関係のないコード ビハインドのみを使用しているため、デモ プロジェクトをここからダウンロードして、自分で実行できます: http://www.sendspace.com/file/mwx7wv

問題は次のとおりです。女の子/男の子のボタンをクリックすると、データテンプレートが切り替わるはずです。

私は何を間違っていますか?

OK、ここにもコードスニペットを提供します:

分離コード MainWindow.cs :

XAML MainWindow.xaml:

DataTemplateSelector クラス:

:)

0 投票する
1 に答える
2216 参照

wpf - ContentTemplateSelector および ListBoxItem Selected Item に基づくテンプレートの選択

一部の製品をリストするデータに関して、XMLDataProvider 静的リソースがあります。マスター詳細シーンとして 2 つのコントロールがあります。1) すべての製品タイトルを一覧表示する ListBox と、2) 製品の詳細を表示する CONtentControl です。

現時点では問題なく動作していますが、ContentControl はハードコードされたテンプレートを使用しています。私が望むのは、異なるテンプレートを持つ製品を表示することであり、 ContentControl の ContentTemplate は、製品のフィールド (TemplateName) に基づいて動的に選択される必要があります。どうやってやるの?パラメーター (オブジェクト) から TemplateName プロパティにアクセスする方法がわからない SelectTemplate オーバーライド メソッドの作成に行き詰まっています。

コードは役に立ちますか?

0 投票する
1 に答える
4518 参照

wpf - ListBox の選択に基づいて ContentTemplate を変更する

次のような StackPanel に Listbox と Border があります。

リストボックスで項目を選択するとき、それに応じて ContentPresenter のコンテンツを変更したいと思います。たとえば、人を選択するとテンプレートが変更され、人に関連する一連の入力フィールドが表示され、動物を選択すると動物などに関連する一連のフィールドが表示されます。 - この動作は、TabControl に似ています。

Border の DataTemplate を変更する DataTrigger でこれを達成できると思いますが、これを達成する方法がわかりません。

ポインタはありますか?

ありがとう

0 投票する
1 に答える
211 参照

.net - オブジェクトの値に基づいて GroupBox のテンプレートを選択する方法

グループ ボックスの内容を値で選択したいのですが、これを行う XAML をどのように記述すればよいでしょうか?

テンプレート セレクターを使用すると、使用するテンプレートを選択できますが、このグループ ボックスを変数の値に関連付ける構文がわかりません。

0 投票する
1 に答える
2769 参照

wpf - WPFで、トリガーを介して切り替えられたテンプレート内の要素を見つけるにはどうすればよいですか?

いくつかのカスタム状態のプロパティに応じて、関連するXAMLファイルのリソースとしてすべて定義されているさまざまなContentTemplatesをスワップするUserControl(見た目のないカスタムコントロールではありません)があります。コードビハインドでは、スワップインされたContentTemplatesの要素の1つを見つける必要があります。

ルックレスコントロール(つまり、カスタムコントロール)では、OnApplyTemplateをオーバーライドしてから、FindNameを使用しますが、ContentTemplateがトリガーによって切り替えられたときにそのオーバーライドは発生しません(少なくともUserControlの場合はそうではありません。私はしていません)。カスタムコントロールを使用してその機能をテストしました。)

ここで、Loadedイベントをスワップインされたテンプレートのコントロールに接続してみました。これはコードビハインドで発生します。次に、「sender」をクラスレベルの変数に格納します。ただし、Unloadedイベントをサブスクライブしてその値をクリアしようとすると、tempalteがスワップアウトされて、呼び出される前にそのイベントの配線が解除され、コントロールが画面からサイレントにアンロードされるため、このイベントは発生しません。しかし、私はまだコードビハインドでそのハングした参照を持っています。

OnApplyTemplate機能をシミュレートするために、ContentTemplateChanged通知をサブスクライブし、VisualTreeHelperを使用して必要なコントロールを探すことを検討していますが、もっと良い方法があるかどうか疑問に思っているので、この投稿をご覧ください。

何か案は?

参考までに、これは私が持っているコントロールの非常に簡略化された例です。この例では、IsEditingがtrueの場合、「FindMe」という名前のテキストボックスを検索します。IsEditingがfalseの場合、つまりContentTemplateがスワップインされていない場合、「null」を取得したい...

Aaaaaaand GO!

M

0 投票する
3 に答える
9583 参照

wpf - 「this.ContentTemplate.FindName」が独自のテンプレートで InvalidOperationException をスローするのはなぜですか?

わかりました...これは私を困惑させました。サブクラスでオーバーライドOnContentTemplateChangedしました。UserControlこれを呼び出すと、 for に渡された値がnewContentTemplate実際に等しいthis.ContentTemplate(等しい) ことを確認しています...

...次の例外がスローされます...

「この操作は、このテンプレートが適用されている要素に対してのみ有効です。」

別の関連する質問のコメント者によると、彼は、コントロール自体ではなく、コントロールのコンテンツ プレゼンターを渡すことになっていると述べたので、これを試しました...

...whereFindVisualChildは、関連するコンテンツ プレゼンターを見つけるために MSDN の例 (以下を参照) で使用される単なるヘルパー関数です。が見つかってcpも、同じエラーがスローされます。私は困惑しています!

参照用のヘルパー関数は次のとおりです...

0 投票する
1 に答える
933 参照

asp.net - 更新パネルのコンテンツテンプレート内ですべてのコンテンツが左揃えになるのはなぜですか?

更新タイマーが開始する前に2つのラベルにダミーのテキストを書き込むと、1つは右側に表示され、もう1つは左側に表示されます。ただし、updateTimerが画像に入ると、両方のテキストが左側に貼り付いて表示されます。

これがコードです

0 投票する
1 に答える
1120 参照

silverlight - DataGridCellコンテンツテンプレートセレクターSilverlight

サーバーから取得した動的データ(カスタムDataRowsのコレクション)を含むDataGridがあります。DataRowには、インデクサーと、バインディングのデータ行全体を返すプロパティDataがあります(以下を参照)。

DataGridの各列を次のように作成します。

私がする必要があること:コンバーターが返すデータに応じて、さまざまな方法でDataGridCellsのコンテンツを表示する必要があります。
テンプレートセレクター(ContentControlを継承する)を作成し、次のようにDataGridCellのContentTemplateプロパティに配置しました。

この場合、セレクターのコンテンツとしてDataRow全体があり(列が行の1つの項目にバインドされているため、理由がわかりません)、コンバーターは呼び出されません。データ行全体がデフォルトのDataContextであるため、この場合、コードビハインドバインディングは単に無視されていると思います。
そこで、テンプレートセレクターをDataGridCellのControlTemplateに配置しようとしました。

しかし、この場合、セレクターのコンテンツとして空のテキストを含むTextBlockがあります(SHOCKED)。コンテンツが変更された後、コンバーターが呼び出されます。バインディングのデータに従ってテンプレートを選択するテンプレートセレクターを作成するにはどうすればよいですか(コンバーターが呼び出された後)?

0 投票する
1 に答える
2892 参照

silverlight - データ テンプレート セレクターをコンテンツ コントロール テンプレートにバインドする

コンテンツ コントロールをデータ テンプレート セレクターにバインドし、変数をそのコンテンツ コントロールにバインドしてから、変数の内容に応じて別のテンプレートを表示したいと考えています。

TelerikDataTemplateSelectorに必要なことをさせることができましたが、バインドするコントロールが見つかりませんDataTemplateSelector

私が見つけたすべてのコントロールは、DataTemplateSelectorrequireItemsSourceをコレクションとして使用できるようにします。単一のオブジェクトを渡すと、例外がスローされます。

私が渡しているアイテムは、コレクションではなく単一のアイテムです。コンテンツ コントロールが必要なようですが、それにバインドできませんDataTemplateSelector

DataTemplateSelector をバインドできるContent Controlに似た Telerik コントロールはありますか? または、 Content ControlDataTemplateSelectorにバインドできるに似たものがありますか。

どんな助けでも大歓迎です。