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

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

wpf - Textbox IsFocused を Popup IsOpen にバインドし、さらに条件を追加する

私はTextBoxPopupコントロールを持っています。Popup.IsOpenプロパティをプロパティにバインドしたいTextBox.IsFocused。つまり、テキスト ボックスにフォーカスがある場合、ポップアップが開いています。または、ポップアップにフォーカスがある場合、テキストボックスがフォーカスを失ったためにポップアップを閉じたくありません。イベントハンドラーでこれを処理するのではなく、バインディングを使用してこれを処理することを望んでいました。また、依存関係プロパティは既存のもの (つまり、登録、メタデータのオーバーライドなど) であるため、依存関係プロパティに関して何かを行う必要がありますか、またはこれらのプロパティにバインドするだけでよいでしょうか。

これが私のシナリオに似たサンプルコードです

このことから、テキスト ボックス コントロールをクリックしてフォーカスを与えるとポップアップが開き、逆にテキスト ボックスがフォーカスを失うとポップアップが閉じると想定していました。私はこれを機能させることができないようです。

誰かが私が間違っていることを知っている場合、テキストボックスがフォーカスを失ったがフォーカスを受け取ったのはポップアップだった場合、ポップアップが開いたままになるか、フォーカスを戻すという私の質問の後半にも答えることができるかもしれません最初のバインディングの前に開いたままになるように、テキストボックスに追加します。テキスト ボックスがフォーカスを失ったときにフォーカスを取得するその他のコントロールは、このシナリオには適用されません。

わかりやすくするためにこれを言い換えることができるとしたら、私はこのように言います。

1.)バインドPopup.IsOpenするTextBox.IsFocused

2.)にバインドTextBox.IsFocusedPopup.IsFocusedます (これにより、フォーカスがテキスト ボックスに戻されると仮定します) 。


これが私の最初のC#の試みです。何かがまだ正しくありません。何も起こらないので、どこが間違っているのかよくわかりません。

0 投票する
2 に答える
3089 参照

wpf - 依存関係プロパティはどのように実装されますか?

依存関係プロパティがどのように実装されているかを誰かが説明できますか?与えられたインスタンスの参照をキーとして基本クラスで宣言されているのは単なる静的辞書ですか?インターネットでこれに関するリソースを見つけることができません...
どうもありがとう

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

wpf - INotifyPropertyChanged と DependencyProperty の関係は何ですか?

コントロールのプロパティを XAML で変更できるように、DependencyProperties を使用して簡単な UserControl の例を作成しています (以下のコード)。

しかし、もちろん、私のアプリケーションでは、このコントロールに密結合のコード ビハインドを持たせたくありません。代わりに、ユーザー コントロールは "DataTypeWholeNumberView" というビューになり、"DataTypeWholeNumberViewModel" という独自の ViewModel を持ちます。

したがって、以下の DependencyProperty ロジックを ViewModel に実装しますが、ViewModel では通常 INotifyPropertyChanged を継承します。これにより、同じ機能が得られるようです。

では、次の関係はどのようなものですか。

  1. UserControl XAML の DataContext をDependencyProperties を持つそのコード ビハインドにバインドする
  2. UserControl XAML (View) の DataContext をそのViewModel (INotifyPropertyChanged から継承) にバインドし、INotifyPropertyChanged 機能を実装するプロパティを持っていますか?

XAML:

コードビハインド:

0 投票する
2 に答える
95 参照

wpf - DependencyPropertiesが実際のプロパティと競合しないようにするための最良の方法は何ですか?

依存関係プロパティを作成すると、それらのほとんどがUserControlのプロパティの名前(背景、幅など)と競合することがわかりました。そのため、私の戦略では、すべてのカスタムプロパティの前に「The」を付けます。

  • 背景

警告を取り除く「new」キーワードを使用してみましたが、実行時に競合が発生します。

カスタムユーザーコントロールのDependencyPropertiesのより良い命名戦略に出くわした人はいますか?

0 投票する
4 に答える
7525 参照

wpf - コード ビハインド コンストラクターから DependencyProperty 値にアクセスするにはどうすればよいですか?

Statusという DependencyProperty を持つSmartFormという UserControl があります。

私の Window1.xaml には、要素があります<local:SmartForm Status="Ready"/>

その場合、SmartForm オブジェクトのコンストラクターでは、 Status は "Ready" と等しくなりますが、代わりにnullと等しくなると思います。

それでは、 SmartForm のコンストラクターでStatus プロパティの値が NULL になるのはなぜですか?

UserControl コンストラクターにない場合、いつ value にアクセスできますか?

Window1.xaml:

SmartForm.xaml:

SmartForm.xaml.cs:

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

wpf - DependencyProperty.Register() または .RegisterAttached()

.Register() の代わりに RegisterAttached() を使用する必要がある場合、2 つの違いは何ですか?

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

.net - WPF - コンパイル エラー: タイプ 'PropertyArrayStart' のタグはテンプレート セクションではサポートされていません

通常、私は SO にエラー メッセージを投稿するだけではありませんが、Google 検索でヒットが 1 つしか見つからなかったので、SO でこのエラーについて少なくともフロアを開くと思いました。

typeSparklineという依存関係プロパティで呼び出されるカスタム コントロールがあります。で使用する例を次に示します。Valuesunit[]DataTemplate

このコードはコンパイルされません。次のエラー メッセージが表示されます。

タイプ 'PropertyArrayStart' のタグは、テンプレート セクションではサポートされていません。

行/列番号は、Values属性の開始を示します。

これは本当に私を投げました。Google で検索すると、 John_Cがまったく同じ問題に遭遇した1 つの結果が返されました。残念ながら、彼の解決策は、コントロールを別のアセンブリに移動することでした。ええと、私のものはすでに別のアセンブリにあります。私の推測では、他の何かが働いているということです。

聞いたことがないPropertyArrayStart。それを検索すると、XAML シリアライゼーションに関連するいくつかのページのみが返されます。興味深いものですが、あまり役に立ちません。

考えてみると、フレームワークに配列型を持つ依存プロパティが思い浮かびません。これは許されますか?

のマークアップ拡張機能の代わりに、ネストされた要素を使用してみましたBinding

...まだ運がありません。

どんなアイデアでも大歓迎!

0 投票する
4 に答える
21787 参照

wpf - WPF - DependencyProperty への IsEnabled バインディングが正しく機能しない

以下のように、ウィンドウで定義された依存関係プロパティがあります。

ウィンドウのコンストラクターで、ボタンを保持しているコンテナーのデータ コンテキストを設定します。

依存関係プロパティをボタンの IsEnabled プロパティにバインドしています。

起動時に IsGenericUser が true であるため、ボタンは有効になっています。IsGenericUser を false に設定すると、ボタンが無効になります。ただし、IsGenericUser を再度 true にすると、ボタンには何も起こらず、無効のままになります。私は何を間違っていますか?

ありがとう!

編集:ボタンで使用しているスタイルは次のとおりです。このスタイルが問題の原因です (ボタンにカスタム スタイルがない場合は正常に動作します)。

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

silverlight-3.0 - Silverlight3の依存関係プロパティとデータコンテキスト

Silverlight 3ベータ版を使用していますが、問題が発生しています。自分が書いたユーザーコントロールのあるページがあります。ユーザーコントロールには、依存関係のプロパティがあります。ユーザーコントロールがデータコンテキストを定義していない場合(したがって、親のデータコンテキストを使用している場合)、すべてが正常に機能します。ただし、ユーザーコントロールに独自のデータコンテキストがある場合、依存関係プロパティのOnPropertyChangedメソッドが呼び出されることはありません。

サンプルは次のとおりです。

私のメインページ:

メインページコード:

メインページのデータコンテキスト:

XAMLの制御:

制御コード:

コントロールのデータコンテキスト:

試してみるには、テキストボックスに何かを入力し、[実行]ボタンを押します。コントロールコードのデータコンテキストをコメントアウトして、機能し始めることを確認します。

誰かが何が起こっているのかについての考えを持っていることを願っています。