問題タブ [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.

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

wpf - 相対ソースを使用した WPF バインディングのヒント

画面のヒントのタイトルにも「X」が表示されることを期待していましたが、空です:

拘束表現が間違っているのではないかと思うのですが、わかりません...

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

wpf - Xaml で子供の背景にバインドする方法は?

子が ElementName で明示的に指定されている場合、子の Background にバインドできます。

特定の名前ではなく、相対的な位置を使用したいと思います。相対を使用して子にバインドすることは可能ですか? この場合、常に最初の子になります。以下は機能しませんが、機能するはずです。

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

wpf - 現在の ItemsSource コンテキスト外の DataContext へのバインド

私は;DataSetにバインドしています。Window.DataContext私も持っていDataGridます:

基本的に、その列のヘッダーをDataTableの「名前」、列「テスト」、最初の行にバインドしようとしています。

しかし、私はそれを正しく理解できません。DataGrid の外でも問題なくバインドできることに注意してください。グリッドの ItemsSource はデータ コンテキストを変更し、元の DataContext を外部から参照する方法がわかりません。

バインディングは成功したようです。しかし問題は、Window.DataContext の Tables[Names] の現在の項目 (最初の行) が失われたことです。

DataSet を静的にして {x:Static local:dataset} 経由でアクセスすると、問題なく動作します。しかし、複数のインスタンス (マルチユーザー) があるため、静的データセットは使用できません。

誰でも私を正しい方向に向けることができますか?

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

silverlight - Silverlight の CheckBoxList/RelativeSource の問題

構築中の Silverlight コントロールに CheckBoxList を構築するのに苦労していますが、正しく取得するのに問題があります。

私が求めているのは、* 高さの GridRow 内で CheckBoxes を垂直にラップする CheckBoxList です。私が抱えている問題は、WrapPanel の高さをそれが含まれる行の高さに指定したいということです。

WPF では、次のようになります。

Silverlight は RelativeSource を同じ方法でサポートしていないため、WPF で行ったのと同じ方法でそれを行うことはできません。RelativeSource のいくつかの回避策を見てきましたが、それらは非常に冗長であるか、機能させることができないようです。

Silverlight で WrapPanel の高さを設定する簡単な方法はありますか?

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

wpf - WPF: DataTemplate への相対ソース

次のようなデータテンプレートがある場合、

なぜ相対ソースが見つからないのだろうかEditorTabViewModel?データテンプレートを参照しているだけですか?

更新 1

以下は動作します

より直感的なマークアップはありますか? 笑、私はすでに最初RelativeSource={RelativeSource Mode=TemplatedParent}}"に言及していると思っていましたEditorTabViewModel

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

wpf - ElementName vs. RelativeResource?

次の TextBlocks の Bindings のうち、より多くのパフォーマンスを犠牲にするものはどれですか:

TextBlocks が多くの兄弟と祖先を持つ高いネストレベルにある場合、私の質問は異なる場合があると確信しています。

考慮事項

(個人的な考えのみに基づいているため、それぞれの特定の点で間違っている可能性があります!):

  • ElementName:

    • 現在の要素を検索して比較し、そのすべての子、兄弟、叔父、祖先を含む大叔父 (登録されているすべての名前の HashTable があるのではないでしょうか?)
    • コントロールのプロパティを取得するNameと、 を呼び出すよりもパフォーマンスが低下しますGetType
    • 文字列を比較する方が、型を比較す​​るよりも安価です。特に、ほとんどのコントロールにセットがないことがわかっている場合はなおさらNameです。
  • FindAncestor:

    • 兄弟の「叔父」、「いとこ」などではなく、祖先を介してのみ反復します。
    • GetType先祖の型を決定するために使用される可能性が最も高いです。GetType は、単純なNameプロパティ ゲッターよりもパフォーマンスが高くなります (DP が異なる可能性がありますか?)
0 投票する
1 に答える
337 参照

wpf - 2つの異なるコントロールでセルの幅/高さを接続しますか?

同じ量のアイテム(動的な量)を含む2つのコントロールを作成する必要があります。最初のコントロールはキーを表し、2番目のコントロールは値を表します。

ユーザーが上の列の幅のサイズを変更したときに、(値の)下の行の同じ列に影響を与えるようにするために必要です。

これが私が望むものの例です:


結果:

繰り返しになりますが、セルの境界線をサポートするDataGridのようなコントロールを作成できるようにしたいので、セルの幅と高さを他のコントロールの幅に接続してサイズを変更できるようにする必要があります。

私はそれがxamlyに行われることを好みます。注:これはカスタムコントロールなので、必要に応じて適切なプロパティを宣言できます。ただし、セルの高さと幅は動的で、特定の列/行に対して個別である必要があることに注意してください。

この質問を参照して、少し異なる方法で作成しました(セルの3番目のコントロールがあります)が、質問は同じです。列とセルの高さの幅を動的にし、ユーザーに能力を与えたいです。それらのサイズを変更して、相互に影響を与えます。

アップデート

デサイクロンの答えは私が実装したいものですが、彼が提供した例を試してみましたが、ItemsControlsのGrid.IsSharedSizeScopeプロパティをtrueに設定しましたが、機能しませんでした。結果は次のとおりです(トリミング)。

2つの異なるコントロール間で共有サイズスコープを適用することは可能ですか?

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

wpf - WPFは親バインディングオブジェクトをコンバーターに渡します

Student型のコレクションにバインドされているItemsControlがあります。ItemTemplate内には、IValueConverterを使用してカスタム計算とロジックを実行するTextBoxがあります。そのプロパティではなく、実際のStudentオブジェクトを値コンバーターに渡したいと思います。どうやってやるの?これが私のコードのサンプルです。

コードで私はこれを持っています

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

wpf - WPFでdatacontext RelativeSourceを正しくバインドするには?

XAML のテンプレートで RelativeSource を定義しています。

例外が発生しています

「タイプ 'System.Windows.Markup.XamlParseException' の最初のチャンスの例外が PresentationFramework.dll で発生しました

追加情報: 'System.Windows.Markup.StaticResourceHolder' に値を指定すると、例外がスローされました。"

問題は、Window.Resources 宣言の後にこれをバインドする必要があることだと思いますが、<DataContextタグを使用してこれを行う方法がわかりませんが、RelativeSource を引き続き使用します。ありがとう!

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

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}}}たが、バインドは機能しません。何か不足していますか?