問題タブ [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.
wpf - リストボックスの幅全体を WPF データ テンプレートで埋めるにはどうすればよいですか?
私はListBox
DataTemplate
WPFを持っています。1 つのアイテムを の左側に、ListBox
別のアイテムを右側にぴったりと合わせたいのですが、これを行う方法がわかりません。
これまでのところGrid
、3 つの列があり、左右の列にはコンテンツがあり、中央には幅が「*」に設定されたプレースホルダーがあります。どこが間違っていますか?
コードは次のとおりです。
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 フォーラムにあります。ItemsTemplate
DisplayMemberPath
ItemsSource
Visual
これは WPF の TabControl の根本的な問題のようですので、質問を締め切らせていただきます。ご助力いただきありがとうございます!
c# - c# コードで DataTemplate を作成するにはどうすればよいですか?
winform 相互運用のドロップダウン リストを作成しようとしていますが、コードでドロップダウンを作成しています。ただし、指定した DataTemplate に基づいてデータをバインドするのに問題があります。
私は何が欠けていますか?
wpf - アイテムのインデックスへのWPF ListBoxバインド
ListBox の SelectedIndex に何かをバインドするのは簡単ですが、ListBox 内のすべての項目をリスト内のインデックスにバインドできるようにしたいと考えています。
奇妙に聞こえるかもしれないので、私がやろうとしていることは次のとおりです。
ハイパーリンクの TAG プロパティを問題のアイテムのインデックスにバインドしたいと考えています。ユーザーがハイパーリンクをクリックしたときに、そのハイパーリンクの TAG プロパティを使用して、イベントの原因となったアイテムを特定できるようにします。
提案?
silverlight - Silverlight の DataTemplate にない FindName メソッドの回避策はありますか?
C# コンパイラと Silverlight 2 のドキュメントによると、Silverlight は DataTemplate クラスの FindName メソッドを提供していません。ContentPresenter 内にある Border を見つけたいです。SilverLight 2 での最善の方法は何ですか?
c# - 実行時にデータ テンプレートを切り替える – 更新の問題
私は MVVM アーキテクチャを使用してアプリケーションを分離しています。つまり、次のようなものをよく見かけます
UI は、独自の XAML ファイルのリソース ディクショナリに存在するデータ テンプレートを介して定義されます。
アプリケーションの起動時にリソースをロードすると、アプリケーションは喜んで UI を表示します。しかし、データ テンプレートを削除して新しいテンプレート (同じキー、同じデータ型) を追加すると、UI は古いデータ テンプレートを使用したままになります。もちろん、コンテナーのコンテンツをリセットして強制的に更新することもできますが、このように変更についてすべてのコントロールに通知する必要があるため、これはばかげているように思えます。
他のアプローチはありますか?
wpf - DataTemplate の TextBox に注目する
をDataTemplate
含んでいTextBox
ます。このテンプレートを選択範囲のリストボックス項目に設定しています。
テンプレートのテキスト ボックスにフォーカスを設定できません。MyTemplate.FindName を呼び出そうとしましたが、無効な操作の例外で終わります: この操作は、このテンプレートが適用されている要素に対してのみ有効です。
どうすればアクセスできますか?
wpf - ItemTemplate を含む ListBox を含むタブを変更するとアプリがクラッシュする
2 つの TabItems を持つ WPF TabControl があります。各 TabItem には、個別の ObservableCollection を ItemsSource として持つ ListBox が含まれています。各 ListBox には異なる ItemTemplate があります。
起動時に選択するように設定した TabItem に関係なく、そのタブは正常に表示されますが、他のタブをクリックすると、DataTemplate を指している「呼び出しのターゲットによって例外がスローされました」というエラーでアプリケーションがクラッシュします切り替え先のタブ。
タブの ListBox から ItemTemplate を削除すると、切り替えようとしている (そして DisplayMemberPath を使用している) 場合、すべて正常に動作します。
ただし、インラインであるか、StaticResource または DynamicResource であるかに関係なく、DataTemplate を使用すると、タブの切り替え時にクラッシュが発生します。
何か案は?擬似コードは次のとおりです。
public Window1() { InitializeComponent();
}
c# - WPF での ComboBox テンプレートの問題
ComboBox を持つ DataTemplate のリストビューがあります。ユーザーが実際に値を変更するまで、ComboBox をラベルのように平らに見せたいと思います。以前は以下の例が機能していましたが、少し変更したため、機能しなくなり、理由がわかりません。
IsMouseOver プロパティは、マウスがコントロールの境界線にあるときにのみ設定されるため、正しく機能していないようです。
これを正しく機能させるにはどうすればよいですか?
ここにスニペットがあります:
wpf - データバインドされた ItemsControl からテンプレート化された項目のインスタンスを取得するにはどうすればよいですか? (WPF)
<ItemsControl>
カスタム<DataTemplate>
(および<ItemsPanelTemplate>
単なるカスタム)を持っており、単純な観察可能な文字列のコレクションにWrapPanel
バインドされています。ItemsSource
は、プロパティが を介して文字列にバインドされているDataTemplate
カスタムのインスタンスで構成されています。UserControl
{Binding}
問題は、データ項目が単なる文字列であるため、UserControl
プログラムで直接インスタンスにアクセスする必要があることですが、方法がわかりません!
私はもう試した:
...しかし、それは文字列を返すだけです。また:
... を返しますが、 my のインスタンスに到達するために をContentPresenter
どうすればよいかわかりません。ContentPresenter
UserControl
??
これはこの質問に似ていますが、適切に回答されたことはなく、Silverlight に固有のものでしたが、これは WPF です。