問題タブ [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.
wpf - SelectTemplate メソッドがデバッグ モードで 2 回実行されるのはなぜですか?
このクラスをデバッグすると、SelectTemplate メソッドが 2 回実行されますが、なぜですか?
最初の項目は常に null です。
wpf - ContentTemplateSelector は一度だけ呼び出され、常に同じデータテンプレートを表示します
サンプル デモ VS 2010 RC サンプル プロジェクトを作成しました。これは、本番プロジェクトで MVVM を使用して同じエラーが発生したためです。
私のサンプル デモ プロジェクトでは、サード パーティの依存関係のないコード ビハインドのみを使用しているため、デモ プロジェクトをここからダウンロードして、自分で実行できます: http://www.sendspace.com/file/mwx7wv
問題は次のとおりです。女の子/男の子のボタンをクリックすると、データテンプレートが切り替わるはずです。
私は何を間違っていますか?
OK、ここにもコードスニペットを提供します:
分離コード MainWindow.cs :
XAML MainWindow.xaml:
DataTemplateSelector クラス:
:)
wpf - ContentTemplateSelector および ListBoxItem Selected Item に基づくテンプレートの選択
一部の製品をリストするデータに関して、XMLDataProvider 静的リソースがあります。マスター詳細シーンとして 2 つのコントロールがあります。1) すべての製品タイトルを一覧表示する ListBox と、2) 製品の詳細を表示する CONtentControl です。
現時点では問題なく動作していますが、ContentControl はハードコードされたテンプレートを使用しています。私が望むのは、異なるテンプレートを持つ製品を表示することであり、 ContentControl の ContentTemplate は、製品のフィールド (TemplateName) に基づいて動的に選択される必要があります。どうやってやるの?パラメーター (オブジェクト) から TemplateName プロパティにアクセスする方法がわからない SelectTemplate オーバーライド メソッドの作成に行き詰まっています。
コードは役に立ちますか?
wpf - ListBox の選択に基づいて ContentTemplate を変更する
次のような StackPanel に Listbox と Border があります。
リストボックスで項目を選択するとき、それに応じて ContentPresenter のコンテンツを変更したいと思います。たとえば、人を選択するとテンプレートが変更され、人に関連する一連の入力フィールドが表示され、動物を選択すると動物などに関連する一連のフィールドが表示されます。 - この動作は、TabControl に似ています。
Border の DataTemplate を変更する DataTrigger でこれを達成できると思いますが、これを達成する方法がわかりません。
ポインタはありますか?
ありがとう
.net - オブジェクトの値に基づいて GroupBox のテンプレートを選択する方法
グループ ボックスの内容を値で選択したいのですが、これを行う XAML をどのように記述すればよいでしょうか?
テンプレート セレクターを使用すると、使用するテンプレートを選択できますが、このグループ ボックスを変数の値に関連付ける構文がわかりません。
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
wpf - 「this.ContentTemplate.FindName」が独自のテンプレートで InvalidOperationException をスローするのはなぜですか?
わかりました...これは私を困惑させました。サブクラスでオーバーライドOnContentTemplateChanged
しました。UserControl
これを呼び出すと、 for に渡された値がnewContentTemplate
実際に等しいthis.ContentTemplate
(等しい) ことを確認しています...
...次の例外がスローされます...
「この操作は、このテンプレートが適用されている要素に対してのみ有効です。」
別の関連する質問のコメント者によると、彼は、コントロール自体ではなく、コントロールのコンテンツ プレゼンターを渡すことになっていると述べたので、これを試しました...
...whereFindVisualChild
は、関連するコンテンツ プレゼンターを見つけるために MSDN の例 (以下を参照) で使用される単なるヘルパー関数です。が見つかってcp
も、同じエラーがスローされます。私は困惑しています!
参照用のヘルパー関数は次のとおりです...
asp.net - 更新パネルのコンテンツテンプレート内ですべてのコンテンツが左揃えになるのはなぜですか?
更新タイマーが開始する前に2つのラベルにダミーのテキストを書き込むと、1つは右側に表示され、もう1つは左側に表示されます。ただし、updateTimerが画像に入ると、両方のテキストが左側に貼り付いて表示されます。
これがコードです
silverlight - DataGridCellコンテンツテンプレートセレクターSilverlight
サーバーから取得した動的データ(カスタムDataRowsのコレクション)を含むDataGridがあります。DataRowには、インデクサーと、バインディングのデータ行全体を返すプロパティDataがあります(以下を参照)。
DataGridの各列を次のように作成します。
私がする必要があること:コンバーターが返すデータに応じて、さまざまな方法でDataGridCellsのコンテンツを表示する必要があります。
テンプレートセレクター(ContentControlを継承する)を作成し、次のようにDataGridCellのContentTemplateプロパティに配置しました。
この場合、セレクターのコンテンツとしてDataRow全体があり(列が行の1つの項目にバインドされているため、理由がわかりません)、コンバーターは呼び出されません。データ行全体がデフォルトのDataContextであるため、この場合、コードビハインドバインディングは単に無視されていると思います。
そこで、テンプレートセレクターをDataGridCellのControlTemplateに配置しようとしました。
しかし、この場合、セレクターのコンテンツとして空のテキストを含むTextBlockがあります(SHOCKED)。コンテンツが変更された後、コンバーターが呼び出されます。バインディングのデータに従ってテンプレートを選択するテンプレートセレクターを作成するにはどうすればよいですか(コンバーターが呼び出された後)?
silverlight - データ テンプレート セレクターをコンテンツ コントロール テンプレートにバインドする
コンテンツ コントロールをデータ テンプレート セレクターにバインドし、変数をそのコンテンツ コントロールにバインドしてから、変数の内容に応じて別のテンプレートを表示したいと考えています。
TelerikDataTemplateSelector
に必要なことをさせることができましたが、バインドするコントロールが見つかりませんDataTemplateSelector
。
私が見つけたすべてのコントロールは、DataTemplateSelector
requireItemsSource
をコレクションとして使用できるようにします。単一のオブジェクトを渡すと、例外がスローされます。
私が渡しているアイテムは、コレクションではなく単一のアイテムです。コンテンツ コントロールが必要なようですが、それにバインドできませんDataTemplateSelector
。
DataTemplateSelector をバインドできるContent Controlに似た Telerik コントロールはありますか? または、 Content ControlDataTemplateSelector
にバインドできるに似たものがありますか。
どんな助けでも大歓迎です。