問題タブ [dependency-properties]
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 依存関係プロパティの質問...この特定のシナリオで何をすべきかについてアドバイスが必要です:
私は WPF で (クロスワードのような) スコドゥ プレーヤーを作成しようとしていますが、機能するために数独グリッドを知る必要があるコントロールがたくさんあることに気付きました。
このため、Sudoku Grid オブジェクトは、依存関係プロパティを作成するための適切な候補になると思います。仕事を始めようとしていますが、いくつかの疑問が残ります。
SudokuGrid 依存関係プロパティを所有するのは誰ですか? メイン ウィンドウの UI 要素が必要だと考えています。
数独グリッドの一部を表すすべてのユーザー コントロールが .AddOwner() メソッドを介してプロパティに追加するだけの共有依存関係プロパティとして設定する必要がありますか?
また
メイン ウィンドウで定義された添付プロパティとして設定し、それに応じて子ユーザー コントロールを設定できるようにしますか?
ただし、子コントロールが独自のグリッド プロパティ値を設定できるようにしたくないので、現時点では共有依存関係プロパティに傾倒していますが、それが私が思っていることを実行するかどうかはわかりません。
最終的に私が望むのは、親UI要素に設定されている場合、そのプロパティを知っているすべての子UI要素が同じ値を共有し、以前の値/設定をオーバーライドする1つのプロパティです。共有依存関係はそれを行いますか?
私はそれが少し長くなっていることを知っていますが、どんな助けでも大歓迎です!
c# - アニメーションが終了またはキャンセルされたときに、アニメーションの最終値をプロパティに設定する方法は?
DependencyProperty を値からターゲット値 (コード内) にアニメーション化しようとし、アニメーションが終了 (またはキャンセル) されたら、最終値をプロパティに設定します。最終値は、アニメーションが終了した場合は To 値、またはアニメーションがキャンセルされた場合は (アニメーションによって)現在計算された値のいずれかになります。
デフォルトでは、アニメーションにはこの動作がなく、アニメーションは完了しても実際の値を変更しません。
失敗した試み
少し前に、前述の動作を実現するためにこのヘルパー メソッドを作成しました。
残念ながら、誰かが BeginAnimation(property,null ) を呼び出してアニメーションが削除された場合、Completed イベントは発生しないように見えるため、アニメーションがキャンセルされたときに最終値を正しく設定できません。さらに悪いことに、イベントハンドラーも削除できません...
誰かがこれをきれいな方法で行う方法を知っていますか?
.net - DependencyObject 継承ツリーのカスタマイズ
DependencyObject
および で使用されるプロパティ継承ツリー (または継承コンテキスト) に関する十分な情報を見つけるのに苦労していますDependencyProperty
。
オブジェクト A が論理的な親オブジェクト B であるように、典型的な WPF ページの外側の値継承機能を使用したいと思いDependencyProperty
ます。したがって、オブジェクト A のプロパティに割り当てられた値は、ローカルにない限り、オブジェクト B に自動的に伝達されます。 set (FlowDirection
プロパティが WPF で機能するのと少し似ています)。
オブジェクト A とオブジェクト B が から派生しDependencyObject
、a の子ではない場合UIElement
(つまり、オブジェクト A はそれ自身のルートDependencyProperty
です)、 B が A の子であることを理解するように論理ツリーをどのように確立しますか?
Hillberg Freezable TrickやJosh Smith の一連のトリックは 、私が探しているものとはまったく異なります。既存の要素ツリーからプロパティを取得したくありません... 独自の視覚的でない要素ツリーを作成したい... つまり、継承コンテキストを制御したいのです。
この一連の知識がどこに隠れているか知っている人はいますか?
.net - 依存関係プロパティとは
.Net の依存関係プロパティとは (特に WPF コンテキストで)。通常の物件との違いは?
.net - System.Windows.DependencyProperty と System.Workflow.ComponentModel.DependencyProperty の比較
.NET Framework には、DependencyProperty オブジェクトの 2 つの実装があるようです。
最初のものの通常の使用はWPFであり、2番目のものの通常の使用はWFであることを理解していますが、もしあればそれらの違いは何ですか?
WPF/WF を使用していなくても、使用するのに最適な DependencyProperty を使用したい場合は?
将来的に合併する予定はありますか?
wpf - UserControl カスタム DependencyProperties 問題
画像とラベルを持つカスタム UserControl があり、どちらも XAML でデザイン時に次のように設定されます。<controls:HomeBarButton Icon="/SuCo;component/Resources/music.png" Text="music"/>
コントロールにアイコンだけがある場合、見た目は問題ありません。Text プロパティを追加すると、デザイン時と実行時の両方でアイコンが消え、テキスト ラベルは UserControl で設定された書式設定を無視し、ラベルが中央に配置されるとコントロールの左上隅が黒くなります。
関連する UserControl XAML:
分離コード:
私は何を間違っていますか?:(
wpf - FrameworkElement の中心を見つけるために、どの WPF 依存関係プロパティにバインドする必要がありますか?
私は WPF アプリケーションを作成しており、最善のバインディング アプローチを見つけようとしていますが、「ハック」ソリューションしか考えていません。より良い方法があることを願っています。
Grid 内に Border オブジェクト (FrameworkElement から派生) があります。子 TextBlock のテキストが変更されると、Border のサイズが変更される場合があります。ボーダーが存在するセルがグリッド内の他のものによって再配置される可能性があるため、ボーダーの位置が変わる場合があります。
画面の左下隅から Border オブジェクトの正確な中心まで Line を描画したいと考えています。Border の正確な中心にある線の終点は、Border のサイズや画面上の位置に関係なく、常に中心にある必要があります。
どうすればこれを達成できますか?
My idea is that binding to a dependency property seems to be the ideal way to handle this. I could use an IValueConverter on a Binding object to calculate the exact center given it's ActualWidth, ActualHeight, and TranslatePoint() to find the upper left corner. However, I can't figure out what dependency property I should bind to that will alert me when the Border changes size and/or position.
silverlight - XamlParseException AG_E_PARSER_BAD_PROPERTY_VALUE を引き起こす依存関係プロパティ
2 つの UserControls を作成しました。1 つ目はオブジェクトのリストを表示し、2 つ目は最初から選択されたオブジェクトの詳細を表示します。最初のコントロールに依存関係プロパティを作成し、各 UserControl を Resources コレクションで宣言されたオブジェクトにバインドしています。これについて説明しているブログ記事を見たことがありますが、うまく動作しないようです。XamlParseException が発生しています。面白いことに、最初の UserControls でバインディング Mode=TwoWay を設定した場合にのみ例外が発生します。これがコードです...
Page.xaml
ItemList.xaml.cs
どんな提案も大歓迎です!
wpf - 「パススルー」DataBinding を実装するにはどうすればよいですか?
少し背景: ControlPresenter と呼ぶクラスにロードするプロパティ (コントロール タイプ、ラベル、マージンなど) のテーブルに格納されているデータベースから WPF UI をロードしています。基本的に、ControlPresenter を ContentPresenter の DataContext として設定し、TemplateSelector を使用して、読み込むコントロールのタイプを選択します。DataTemplate は、ControlPresenter によって公開された DependencyProperties からプロパティをロードします。
これはすべて非常にうまく機能します。私が直面している問題は、他のプレゼンター (INotifyPropertyChanged を実装する通常のプロパティを持つ) のデータ (たとえば、TextBox の Text プロパティをプレゼンターの Name プロパティにバインドする) をこれらのコントロールにバインドしようとすると発生します。コントロールの DataContext は関連付けられた ControlPresenter であるため、他のプレゼンターに直接バインドできず、同じ依存関係プロパティに 2 つのバインドを設定できません (コントロールと目的のプレゼンター プロパティを同じ DP にバインドできません)。 .
可能な解決策:
- 他のすべてのプレゼンターを DP を使用するように変換できます (非常に時間がかかり、継承で問題が発生する傾向があります)。
- 通過させたいプロパティごとに 2 つの DP を使用し、変更された通知を通じてそれらを結び付けようとすることができます
これらはどちらも問題があり、壊れやすいように見えるので、他の誰かがより良い解決策を思いついたことを願っています.
編集:かなりうまく機能するソリューションを思いつきました(以下を参照)。これを見てくれたみんなに感謝します。私よりも良い方法を思いついたら教えてください。
wpf - ページのデータコンテキストが他のバインディングに使用されている場合に、WPF 依存関係プロパティにバインドする方法は?
ページのデータコンテキストが他のバインディングに使用されている場合に、WPF 依存関係プロパティにバインドする方法は? (素朴な疑問)