問題タブ [relativesource]
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 バインディングのヒント
画面のヒントのタイトルにも「X」が表示されることを期待していましたが、空です:
拘束表現が間違っているのではないかと思うのですが、わかりません...
wpf - Xaml で子供の背景にバインドする方法は?
子が ElementName で明示的に指定されている場合、子の Background にバインドできます。
特定の名前ではなく、相対的な位置を使用したいと思います。相対を使用して子にバインドすることは可能ですか? この場合、常に最初の子になります。以下は機能しませんが、機能するはずです。
wpf - 現在の ItemsSource コンテキスト外の DataContext へのバインド
私は;DataSet
にバインドしています。Window.DataContext
私も持っていDataGrid
ます:
基本的に、その列のヘッダーをDataTableの「名前」、列「テスト」、最初の行にバインドしようとしています。
しかし、私はそれを正しく理解できません。DataGrid の外でも問題なくバインドできることに注意してください。グリッドの ItemsSource はデータ コンテキストを変更し、元の DataContext を外部から参照する方法がわかりません。
バインディングは成功したようです。しかし問題は、Window.DataContext の Tables[Names] の現在の項目 (最初の行) が失われたことです。
DataSet を静的にして {x:Static local:dataset} 経由でアクセスすると、問題なく動作します。しかし、複数のインスタンス (マルチユーザー) があるため、静的データセットは使用できません。
誰でも私を正しい方向に向けることができますか?
silverlight - Silverlight の CheckBoxList/RelativeSource の問題
構築中の Silverlight コントロールに CheckBoxList を構築するのに苦労していますが、正しく取得するのに問題があります。
私が求めているのは、* 高さの GridRow 内で CheckBoxes を垂直にラップする CheckBoxList です。私が抱えている問題は、WrapPanel の高さをそれが含まれる行の高さに指定したいということです。
WPF では、次のようになります。
Silverlight は RelativeSource を同じ方法でサポートしていないため、WPF で行ったのと同じ方法でそれを行うことはできません。RelativeSource のいくつかの回避策を見てきましたが、それらは非常に冗長であるか、機能させることができないようです。
Silverlight で WrapPanel の高さを設定する簡単な方法はありますか?
wpf - WPF: DataTemplate への相対ソース
次のようなデータテンプレートがある場合、
なぜ相対ソースが見つからないのだろうかEditorTabViewModel
?データテンプレートを参照しているだけですか?
更新 1
以下は動作します
より直感的なマークアップはありますか? 笑、私はすでに最初RelativeSource={RelativeSource Mode=TemplatedParent}}"
に言及していると思っていましたEditorTabViewModel
wpf - ElementName vs. RelativeResource?
次の TextBlocks の Bindings のうち、より多くのパフォーマンスを犠牲にするものはどれですか:
TextBlocks が多くの兄弟と祖先を持つ高いネストレベルにある場合、私の質問は異なる場合があると確信しています。
考慮事項
(個人的な考えのみに基づいているため、それぞれの特定の点で間違っている可能性があります!):
ElementName
:- 現在の要素を検索して比較し、そのすべての子、兄弟、叔父、祖先を含む大叔父 (登録されているすべての名前の HashTable があるのではないでしょうか?)
- コントロールのプロパティを取得する
Name
と、 を呼び出すよりもパフォーマンスが低下しますGetType
。 - 文字列を比較する方が、型を比較するよりも安価です。特に、ほとんどのコントロールにセットがないことがわかっている場合はなおさら
Name
です。
FindAncestor
:- 兄弟の「叔父」、「いとこ」などではなく、祖先を介してのみ反復します。
GetType
先祖の型を決定するために使用される可能性が最も高いです。GetType は、単純なName
プロパティ ゲッターよりもパフォーマンスが高くなります (DP が異なる可能性がありますか?)
wpf - 2つの異なるコントロールでセルの幅/高さを接続しますか?
同じ量のアイテム(動的な量)を含む2つのコントロールを作成する必要があります。最初のコントロールはキーを表し、2番目のコントロールは値を表します。
ユーザーが上の列の幅のサイズを変更したときに、(値の)下の行の同じ列に影響を与えるようにするために必要です。
これが私が望むものの例です:
結果:
繰り返しになりますが、セルの境界線をサポートするDataGridのようなコントロールを作成できるようにしたいので、セルの幅と高さを他のコントロールの幅に接続してサイズを変更できるようにする必要があります。
私はそれがxamlyに行われることを好みます。注:これはカスタムコントロールなので、必要に応じて適切なプロパティを宣言できます。ただし、セルの高さと幅は動的で、特定の列/行に対して個別である必要があることに注意してください。
この質問を参照して、少し異なる方法で作成しました(セルの3番目のコントロールがあります)が、質問は同じです。列とセルの高さの幅を動的にし、ユーザーに能力を与えたいです。それらのサイズを変更して、相互に影響を与えます。
アップデート
デサイクロンの答えは私が実装したいものですが、彼が提供した例を試してみましたが、ItemsControl
sのGrid.IsSharedSizeScope
プロパティをtrueに設定しましたが、機能しませんでした。結果は次のとおりです(トリミング)。
2つの異なるコントロール間で共有サイズスコープを適用することは可能ですか?
wpf - WPFは親バインディングオブジェクトをコンバーターに渡します
Student型のコレクションにバインドされているItemsControlがあります。ItemTemplate内には、IValueConverterを使用してカスタム計算とロジックを実行するTextBoxがあります。そのプロパティではなく、実際のStudentオブジェクトを値コンバーターに渡したいと思います。どうやってやるの?これが私のコードのサンプルです。
コードで私はこれを持っています
wpf - WPFでdatacontext RelativeSourceを正しくバインドするには?
XAML のテンプレートで RelativeSource を定義しています。
例外が発生しています
「タイプ 'System.Windows.Markup.XamlParseException' の最初のチャンスの例外が PresentationFramework.dll で発生しました
追加情報: 'System.Windows.Markup.StaticResourceHolder' に値を指定すると、例外がスローされました。"
問題は、Window.Resources 宣言の後にこれをバインドする必要があることだと思いますが、<DataContext
タグを使用してこれを行う方法がわかりませんが、RelativeSource を引き続き使用します。ありがとう!
wpf - RelativeSource を先祖の問題にバインドする WPF
コレクションのコレクションを WPF データグリッド コンポーネント (外部ライブラリ) にバインドしています。基になるコンポーネントDataSource
には次の構造があります。これにより、基本的に階層レコードを持つデータグリッドが得られます
list
は datagrids DataSource であり、これは階層バインディングを実行します。今、私はコンポーネント(データソースがtypeCollectionである階層への1レベルのレコードのヘッダーラベル)をweightType
使用して変数にバインドしようとしましText="{Binding Path=weightType, Mode=TwoWay, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type btm:DataGridItemType}}}
たが、バインドは機能しません。何か不足していますか?