問題タブ [propertychanged]

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 に答える
2377 参照

c# - WCF による ObservableCollection

サーバー側のコレクションが(クライアントアクションまたはサーバーアクションによって)変更された場合、wcf-serviceからwcf-clientにPropertyChangedイベントを取得しようと何日も試みています。コールバックを使用してリストをリロードする代わりに、より良い解決策が必要です...または?

サーバー側:(別の投稿の例とほぼ同じ) WCFデータコントラクトとしてのObservableCollectionおよびCollectionChangedイベント

クライアント側:

これまでのところ動作しています...クライアント側でコレクションを照会できますが、サーバーコレクションで何かが変更されたときに「propertyChanged」を受け取りませんか?

どうしたの?私の間違いと誤解はどこにありますか?

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

wpf - 依存関係プロパティのPropertyChangedCallbackが呼び出されない

DependencyPropertyと対応するコールバックメソッドを使用した独自のユーザーコントロールがある場合は、次のようになります。

このユーザーコントロールを使用するときは、「Rates」というObservableCollectionをRatesPropertyにバインドします。料金と関連する方法は次のようになります。

ObservableCollectionレートを変更すると(たとえば、を使用してthis.Rates = new ObservableCollection<double>() { 1.0, 2.0 })、ユーザーコントロールのOnRatesChanged()メソッドが期待どおりに呼び出されます。しかし、私が以下を実行するとき、それは呼び出されません:

正しいプロパティ名でPropertyChangedイベントを発生させると、ユーザーコントロールの対応するコールバックが常に呼び出されることを期待していました。それは間違っていますか?私はこのスレッドを見つけました:依存関係プロパティのPropertyChangedCallbackを常に取得する -SilverlightをカバーするSilverlightですが、WPFでも同じことが当てはまると思います。

したがって、バックグラウンドのフレームワークは、バインドされたプロパティ(私の例では「Rates」)が変更されたかどうかをチェックし、変更された場合にのみ、関連するコールバックを呼び出します。したがって、コレクションの要素を変更しても効果はありません。コレクション全体を常に変更する必要がありますか?

ありがとうございました!

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

wpf - WPF で初期化パラメータを UserControl に渡す方法 (MVVM を使用)

UserControl にデータを入力する IPluginsProvider インターフェイスがある MVVM プラクティスを使用して構築した ActionsTreeView という UserControl があります。IContentProviderこのインターフェイスを実装するオブジェクトをパラメーターとして提供して、UserControl の ViewModel を初期化できるようにしたいと考えています。

これまでの私のアプローチは次のとおりですが、うまくいきません。私は正しい道を進んでいるかどうか疑問に思っていますか?DependencyPropertyこの UserControl をインスタンス化する mainWindow に表示されるユーザー コントロールでを宣言します。このコードは、PluginsProvider オブジェクトを、ViewModel を構築するために必要な UserControl に渡そうとするだけです。

My handler が MainWindow.xaml.cs で常に null であるため、UserControl の PluginProviderDependencyPropertyセッターがヒットすることはPropertyChangedありません繋がり?

ActionsTreeView.xaml.cs

MainWindow.xaml.cs

MainWindow.xaml での UserControl の使用

0 投票する
0 に答える
141 参照

.net - 基本クラスで変更されたプロパティを検出する方法

から継承したカスタム コントロールを作成しLabel、文字列プロパティを追加しましたSecondLanguageText

RightToLeft基本クラス ( )のプロパティがいつLabel変更され、テキスト プロパティが新しいプロパティに置き換えられたかを検出したいのですが、プロパティが変更されたときに発生SecondLanguageTextするイベントを追加することでそれを行いたいと考えています。OnRightToLeftChangedRightToLeft

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

c# - UpdateSourceTrigger=PropertyChanged を使用しているのに、TwoWay では不十分なのはなぜですか?

こんにちは; ソースとターゲットのテキスト ボックスがあり、txttarget には txtsource へのバインドがあります。txtsource に何かを書き込むと、txttarget が変更されます。すべて問題ありません。しかし、txttarget に書き込んでいますが、txttarget に変更が見られませんか? 双方向モードがあります。双方向モードでは不十分ですか?「UpdateSourceTrigger=PropertyChanged」を使用せずに記述できますか?

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

wpf - C++/CLI でウィンドウの PropertyChanged イベントをサブスクライブする

C++/CLI を使用して WPF プロパティ変更イベントをサブスクライブしようとしました。これが難しくなるとは思っていませんでした。

最初に、いくつかのウィンドウ (IsMouseDirectlyOver) の特定のプロパティをサブスクライブしようとしましたが、最終的に次のコードで成功しました:

次に、オブジェクトのプロパティの変更をサブスクライブしようとしまし(これは、最終的なコードでプロパティ名によるプロパティの変更を処理できる必要があるため、私にとって最も重要なことです)。私はこれで完全に失敗しました。

いろいろ試してみましたが、何もうまくいきませんでした。C++/CLI の例は見つかりませんでしたが、ドキュメントと C# の例によると、次のコードが最も適切なコードのように思われました。

しかし、コンパイラはエラー C2039 で、'PropertyChangedEvent' は 'System::Windows::Window' の要素ではないことを教えてくれます。

どうすれば私が望むものを達成できますか?

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

c# - WebBrowserOnPropertyChangeイベントが発生していません

Webページと入力ボタンがあります。このボタンをクリックすると、特定のdivにいくつかのデータがロードされます。私の問題は、このデータを取得できないことです。

次のコードは、この問題を解決するための私の試みですが、成功しませんでした。

入力ボタンをクリックすると、divのコンテンツは変更されますが、起動resultEventHandlerしません。

だから、私は2つの質問があります:

  1. このコードのどこに私の欠点がありますか?
  2. C#のコントロールを Aplication.DoEvents()使用してajaxを操作する「通常の方法」(タイマーやを使用しないことを意味します)はありますか?WebBrowser
0 投票する
1 に答える
2780 参照

c# - セッターを使用してプロパティの変更をキャプチャする

プロパティの古い値と新しい値をデータベースに記録できるように、プロパティが変更されたときに通知を受け取りたいです。

そこで、プロパティセッターのアプローチを採用し、すべてのプロパティを処理するジェネリックメソッドを使用することにしました。

私は以下のクラスを作成しました:

そして私の財産では、私はそれをそのように呼んでいます:

しかし、ジェネリックを扱うのは初めてなので、懸念はほとんどありません:

  • 私の財産でこれをどのように呼ぶのですか?
  • これは良いアプローチですか?
  • パブリックで関数を呼び出し PropertyChangedExtendedEventArgs(string propertyName, T oldValue, T newValue)てデータベースに保存することはできますか?
0 投票する
0 に答える
1114 参照

c# - DataTemplateSelector を使用した WPF ListView: PropertyChanged は常にフォーカスを ListView に設定します

私はこの問題に本当にイライラしていますが、おそらくそれは本当に些細なことであり、どこに問題があるのか​​ わかりません。状況は次のとおりです。ItemsSource にバインドされた ListView があります。タイプに応じて、DataTemplateSelector は使用するテンプレートを決定します。

コントロール(テキストボックス)をタブで移動すると、すべて正常に動作します。テキストボックスに値を入力し、テキストボックスのプロパティからタブを外すとすぐに、このプロパティの変更が呼び出されます。コントロールが更新されます。すべて正常に動作していますが、ここで問題が発生します。コントロールが更新される間、フォーカスは次のタブストップに移動せず、ListView にジャンプします。どうすればそれを無効にできますか? データが入力されておらず、プロパティの変更が発生していないように、フォーカスを移動するにはどうすればよいですか?

前もって感謝します

更新: XAML の一部です。さらに情報が必要な場合はお知らせください。

Update2: ListView で Focusable=false を設定した後、PropertyChanged が発生した場合、フォーカスが ListView コントロール全体から飛び出すようになりました

ListView 宣言:

テンプレートの例:

更新 3: ListViewItems の focus lost イベントで、フォーカスが DisconnectedItem に設定されることがあることがわかります ( SO の DisconnectedItem を参照してください。これが、この動作をする理由である可能性があります。

フォーカスを手動で復元することで、問題を解決しました。ListViewItem GotFocus および LostFocus イベントでは、選択した ListViewItem を保存し、フォーカスの復元が必要な場合はフラグを設定します。これは、ItemContainerGenerator.StatusChanged イベントで実行できます。

この解決策は私には非常に醜いようです-これを修正するための他の提案や方法はまだいいでしょう.