問題タブ [datatemplate]

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 投票する
8 に答える
57737 参照

wpf - リストボックスの幅全体を WPF データ テンプレートで埋めるにはどうすればよいですか?

私はListBox DataTemplateWPFを持っています。1 つのアイテムを の左側に、ListBox別のアイテムを右側にぴったりと合わせたいのですが、これを行う方法がわかりません。

これまでのところGrid、3 つの列があり、左右の列にはコンテンツがあり、中央には幅が「*」に設定されたプレースホルダーがあります。どこが間違っていますか?

コードは次のとおりです。

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

wpf - ContentTemplate から周囲のカスタム コントロールにバインドする方法は?

次のユーザー コントロールがあります。

このカスタム TabItem はDependencyProperty、インターフェイスを実装するために「ShortLabel」を定義します。TabItem内からこれと他のプロパティにバインドしたいと思いますDataTemplate。しかし、奇妙な相互作用により、TextBlock内のは の親コンテナーDataTemplateバインドされます。これは "Self" とも呼ばれますが、別の Xaml ファイルで定義されています。TabItem

質問

TabItem.Header ではバインディングが機能するのに、TabItem.ContentTemplate 内では機能しないのはなぜですか? また、DataTemplate 内からユーザー コントロールのプロパティにアクセスするにはどうすればよいですか?

私がすでに試したこと

  • TemplateBinding: の内部で ContentPresenter にバインドしようとしTabItemます。
  • FindAncestor, AncestorType={x:Type TabItem}TabItem:親が見つかりません。タイプを指定すると、これも機能しませんMyTabItem
  • ElementName=Self: 間違ったスコープ (親コンテナーではなく) でその名前のコントロールにバインドしようとしTabItemます。なぜこれが機能しないのか、ヒントが得られると思います.DataTemplateは、XAMLで定義された時点では作成されませんが、明らかに親コンテナーによって作成されます。

ControlTemplate探している効果を達成するために全体を置き換えることができると思いますTabItemが、全体を維持することなくのデフォルトのルック アンド フィールを維持ControlTemplateしたいので、そうするのは非常に気が進まないのです。

編集

一方、問題は次TabControlのとおりであることがわかりました。理由を説明するスレッドが MSDN フォーラムにあります。ItemsTemplateDisplayMemberPathItemsSourceVisual

これは WPF の TabControl の根本的な問題のようですので、質問を締め切らせていただきます。ご助力いただきありがとうございます!

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

c# - c# コードで DataTemplate を作成するにはどうすればよいですか?

winform 相互運用のドロップダウン リストを作成しようとしていますが、コードでドロップダウンを作成しています。ただし、指定した DataTemplate に基づいてデータをバインドするのに問題があります。

私は何が欠けていますか?

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

wpf - アイテムのインデックスへのWPF ListBoxバインド

ListBox の SelectedIndex に何かをバインドするのは簡単ですが、ListBox 内のすべての項目をリスト内のインデックスにバインドできるようにしたいと考えています。

奇妙に聞こえるかもしれないので、私がやろうとしていることは次のとおりです。

ハイパーリンクの TAG プロパティを問題のアイテムのインデックスにバインドしたいと考えています。ユーザーがハイパーリンクをクリックしたときに、そのハイパーリンクの TAG プロパティを使用して、イベントの原因となったアイテムを特定できるようにします。

提案?

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

silverlight - Silverlight の DataTemplate にない FindName メソッドの回避策はありますか?

C# コンパイラと Silverlight 2 のドキュメントによると、Silverlight は DataTemplate クラスの FindName メソッドを提供していません。ContentPresenter 内にある Border を見つけたいです。SilverLight 2 での最善の方法は何ですか?

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

c# - 実行時にデータ テンプレートを切り替える – 更新の問題

私は MVVM アーキテクチャを使用してアプリケーションを分離しています。つまり、次のようなものをよく見かけます

UI は、独自の XAML ファイルのリソース ディクショナリに存在するデータ テンプレートを介して定義されます。

アプリケーションの起動時にリソースをロードすると、アプリケーションは喜んで UI を表示します。しかし、データ テンプレートを削除して新しいテンプレート (同じキー、同じデータ型) を追加すると、UI は古いデータ テンプレートを使用したままになります。もちろん、コンテナーのコンテンツをリセットして強制的に更新することもできますが、このように変更についてすべてのコントロールに通知する必要があるため、これはばかげているように思えます。

他のアプローチはありますか?

0 投票する
4 に答える
13809 参照

wpf - DataTemplate の TextBox に注目する

DataTemplate含んでいTextBoxます。このテンプレートを選択範囲のリストボックス項目に設定しています。

テンプレートのテキスト ボックスにフォーカスを設定できません。MyTemplate.FindName を呼び出そうとしましたが、無効な操作の例外で終わります: この操作は、このテンプレートが適用されている要素に対してのみ有効です。

どうすればアクセスできますか?

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

wpf - ItemTemplate を含む ListBox を含むタブを変更するとアプリがクラッシュする

2 つの TabItems を持つ WPF TabControl があります。各 TabItem には、個別の ObservableCollection を ItemsSource として持つ ListBox が含まれています。各 ListBox には異なる ItemTemplate があります。

起動時に選択するように設定した TabItem に関係なく、そのタブは正常に表示されますが、他のタブをクリックすると、DataTemplate を指している「呼び出しのターゲットによって例外がスローされました」というエラーでアプリケーションがクラッシュします切り替え先のタブ。

タブの ListBox から ItemTemplate を削除すると、切り替えようとしている (そして DisplayMemberPath を使用している) 場合、すべて正常に動作します。

ただし、インラインであるか、StaticResource または DynamicResource であるかに関係なく、DataTemplate を使用すると、タブの切り替え時にクラッシュが発生します。

何か案は?擬似コードは次のとおりです。


public Window1() { InitializeComponent();

}

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

c# - WPF での ComboBox テンプレートの問題

ComboBox を持つ DataTemplate のリストビューがあります。ユーザーが実際に値を変更するまで、ComboBox をラベルのように平らに見せたいと思います。以前は以下の例が機能していましたが、少し変更したため、機能しなくなり、理由がわかりません。

IsMouseOver プロパティは、マウスがコントロールの境界線にあるときにのみ設定されるため、正しく機能していないようです。

これを正しく機能させるにはどうすればよいですか?

ここにスニペットがあります:

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

wpf - データバインドされた ItemsControl からテンプレート化された項目のインスタンスを取得するにはどうすればよいですか? (WPF)

<ItemsControl>カスタム<DataTemplate>(および<ItemsPanelTemplate>単なるカスタム)を持っており、単純な観察可能な文字列のコレクションにWrapPanelバインドされています。ItemsSource

は、プロパティが を介して文字列にバインドされているDataTemplateカスタムのインスタンスで構成されています。UserControl{Binding}

問題は、データ項目が単なる文字列であるため、UserControlプログラムで直接インスタンスにアクセスする必要があることですが、方法がわかりません!

私はもう試した:

...しかし、それは文字列を返すだけです。また:

... を返しますが、 my のインスタンスに到達するために をContentPresenterどうすればよいかわかりません。ContentPresenterUserControl

??

これはこの質問に似ていますが、適切に回答されたことはなく、Silverlight に固有のものでしたが、これは WPF です。