問題タブ [dependencyobject]
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.
c# - 依存オブジェクトのプロパティを静的リソースとしてバインド可能にしますか?
後で静的リソースとしてバインドするために、依存オブジェクト プロパティの配列をバインド可能にする方法は?
私が今持っているコードDependencyObject
は、依存関係プロパティシステムをバイパスしているようです...
私は次のクラスを持っています:
XAML では、次のようなバインディングを使用して、これらのリソース配列を作成します。
バインディングをデバッグしているときに、DP のセッターを削除する必要があることに気付きました。プロパティが見つからないというエラーが XAML に表示されます。XAML は DP システムを使用して値を割り当て、バインディングを有効にすることを理解していました。この場合、XAML が「通常の」プロパティを期待している場合、バインディングは不可能です。どうすればそれを機能させることができるか、誰でも教えてもらえますか?
c# - PropertyChangedCallback でサブプロパティの変更を検出し、サブプロパティを取得する
DepdendencyObject
s とともにsを使用してPropertyChangedCallback
おり、このコールバック内のサブプロパティの変更を検出したいと考えています。問題は、DependencyPropertyChangedEventArgs
-Object ではDP
、変更されたプロパティを含むプロパティのみが表示されることです。このサブプロパティに到達する方法はありますか?
誰かが
また、PropertyChangedCallback は、MainProperty
変更された (ではないSubProperty
) ために呼び出されます。
visual-studio - カラー アニメーション WP8 に Dependency オブジェクトを使用する
ControlTemplate で、形を整えたボタンを使用しています。また、controlTemplate にストーリーボードを追加しました。ストーリーボードは、controlTemplate の要素のボーダーを変更します。コードビハインドからこれにアクセスしてアクティブにします。問題は、電話でこれを行うと遅延が発生することです。MVVM構造の後にコードを構造化しました。私の見解は次のとおりです。
そして、ストーリーボードをアクティブにする ViewModel の部分:
アニメーションに Dependency オブジェクトを使用できることを読みましたが、それがどのように機能するか、または機能するかどうかはわかりませんが、アニメーションに依存オブジェクトを実装しようとする助けがあれば幸いです。
c# - UserControl の FrameworkElement への XAML バインディング
いくつかのプロパティを持つカスタム UserControl (MyControl) を取得しました (これは問題なく動作します)。UserControl を使用するページにコンテンツを「貼り付け」、UserControl に直接表示できるようにする新しいプロパティが必要です。通り。私が試してみました; ContentPresenter、ContentControl、StackPanel、運が悪い...
MyControl.xaml
MyControl.xaml.cs
SomePage.xml
c# - WPF:カスタムDependencyObjectsの値の継承?
カスタム WPF DependencyObject で DependencyProperty の値の継承を実装しようとしていますが、ひどく失敗しています:(
私がしたいこと:
両方の DependencyProperty IntTestを持つT1とT2の 2 つのクラスがあり、デフォルトは 0 です。T1 は T2 のルートである必要があります。これは、Window がそれに含まれる TextBox の論理ルート/親であるのと同じです。
したがって、T2.IntTest の値を明示的に設定しない場合は、T1.IntTestの値を提供する必要があります(たとえば、TextBox.FlowDirection が通常、親ウィンドウの FlowDirection を提供するように)。
私がしたこと:
FrameworkPropertyMetadataOptions.InheritsでFrameworkPropertyMetadataを使用するために、FrameworkElement から派生する 2 つのクラス T1 と T2 を作成しました。また、値の継承を使用するには、DependencyProperty を AttachedProperty として設計する必要があることも読みました。
現在、ルート T1 に値を割り当てると、子 T2 の DP-Getter によって値が返されません。
私は何を間違っていますか???
次の 2 つのクラスがあります。
そして、これを試すコードは次のとおりです。
c# - INotifyPropertyChanged も実装する DependencyObject?
ObservableCollection
Silverlight および WPF アプリの場合、依存関係プロパティとしてを含むカスタム コントロールがあります。そのコントロールの 1 つの要素である Border は、 内の項目の構成に応じて色を変更する必要がありますObservableCollection
。
たとえば、コレクションが動物、野菜、鉱物であり、ObjectList
. 少なくとも 1 匹の動物がいる場合は、境界線を赤くします。動物がなく、野菜が少なくとも 1 つある場合は緑色です。それ以外の場合、コレクションには鉱物しか含まれていないため、青色で表示されます。
コレクションを取得して色を決定できるコンバーターを作成したので、次のようなバインディングを作成します。
課題は、アイテムが追加/削除されるObjectList
と、背景色の再評価をトリガーする必要があることです。ただし、ObjectList
それ自体は変わりません。3 つのオプションがあると思いますが、どれがベスト プラクティスであるかはわかりません。
オブジェクトが追加または削除されるたびに、新しいコレクションを作成します。これは手間がかかるように見えますが、結果
ObjectList
として変更されるため、バックグラウンド更新がトリガーされます。のコールバックで
UpdateTarget
background プロパティを呼び出します。Silverlight では使用できないため、バインドを削除して再度追加するだけです。これもまた少し面倒です。CollectionChanged
ObjectList
UpdateTarget
INotifyPropertyChanged
カスタム コントロールに実装PropertyChanged
しObjectList
、実装内で呼び出しますCollectionChanged
私は 3 が一番好きですが、INPC も実装する DependencyObject があるという事実は奇妙に思えます。それは...ですか?よりエレガントなアプローチはありますか?