問題タブ [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.
inotifypropertychanged - PropertyChanged EventHandler の実装はどこにありますか?
少し混乱しています。INotifyPropertyChanged インターフェイスを実装すると、実際に実行されるコードがわかりません。私が想像しているように、チェーンは次のようになります。
- 私のクラスは INotifyPropertyChanged=> を実装しています
- すべてのプロパティのセッターは
NotifyPropertyChanged メソッドを呼び出します => - PropertyChangedEventHandler
が呼び出す =>???
そして、どのコードが私のコントロールを再レンダリングするのだろうか. ありがとう。
c# - チェックされていないセッターの値の評価
関連するプライベートフィールドを実際に設定して他のいくつかのことを行う前に、値が変更されたかどうかを確認する複合コントロールのプロパティがあります。
ただし、ステートメントを評価していないようです。
プロパティのコードは次のとおりです。
コードをステップ実行しましたが、「value!= mySearchCriteria」に到達するたびに、falseと評価され、ifステートメント内のコードをスキップします。実際、「value == mySearchCriteria」に変更しても、これは実行されます。評価方法に関係なく、完全にスキップすると!
なに?
チェックの引数の順序を変更し、object.Equals()を使用してみましたが、これらの変更のいずれも違いはありません。
Equals、!=、==およびGetHashCodeをオーバーライドしました。
コード内には、これらのオブジェクトタイプに「==」と「!=」を問題なく使用している場所が他にもあるので、オーバーライドが正しく機能していることがわかります。
問題は、これがオーバーライドされたメソッドにヒットすることさえないということです。"=="、 "!="、 "Equals"、 "GetHashCode"にブレークを入れましたが、 "value!= mySearchCriteria"ステートメントが評価されているときに、これらはいずれも呼び出されていません。
それはそれがそれを評価することを完全にスキップするようなものです。
textbox - UpdateSourceTrigger=PropertyChanged の TextBox のテキストは、テキスト入力の強制によってソース値が変更されない場合に更新されません。
TextプロパティにTwoWay MultiBindingがあり、 UpdateSourceTrigger がPropertyChangedに設定されているテキスト ボックスがあります。最初のBindingは、値を小数点以下 1 桁に丸めるPropertyChangedCallBack関数を持つ依存関係プロパティ ( Value )に対するものです。
テキスト ボックスの目的は、テキスト ボックスがフォーカスを失ったときではなく、ユーザーが入力したときに丸めを実行することです。そのため、 UpdateSourceTriggerがPropertyChangedに設定されています。
私が抱えている問題は、値が変更されないテキストが入力された場合、 Textプロパティと値が同期しなくなることです。丸め操作によってValueが変更された場合にのみ、 Textがその場で更新されます。たとえば、TextとValueが両方とも 123.4 で、ユーザーがこの後に 1 を入力した場合、Valueは同じ値 (123.4) に丸められますが、Textは 123.41 を示します。ただし、4 の後に 9 を入力すると、Valueは 123.5 に切り上げられます。この実際の変更により、Textは同じ (123.5) に更新されます。
ソースが最後のトリガーから変更されていない場合でも、テキスト ボックスをソースから強制的に更新する方法はありますか? 使用してみましたが、これはUpdateSourceTriggerがExplicitに設定されてBindingExpressionBase.UpdateTarget()
いる場合にのみ機能します。これは、 UpdateTargetを呼び出すことができる適切な時間 ( TextInputハンドラーなど)の前に値が更新されないため、使用できません。バインドされたValueからText値を明示的に更新する、一時的にValueを実際に変更して更新を呼び出すなどの他の方法を試しましたが、これらの「ハック」は機能しないか、他の問題を引き起こします。
どんな助けでも大歓迎です。
コードは以下です。
XAML スニペット
C# スニペット
コンバータークラスが必要
wpf - reference.csでreferenceequalsをequalsに変更します
wcfWebサービスを使用するwpfアプリがあります。それは私のWebサービスとアプリなので、どちらの側にも変更を加えることができます。Visual Studioによって自動的に生成されるReference.csファイルでは、プロパティ変更イベントに次のコードを使用します。
文字列の場合、私が本当に欲しいのはこれです:
そうすれば、値が同じである場合、プロパティ変更イベントは発生しません。これが問題になる理由は、テキストボックスのOnPreviewTextInputをリッスンし、プログラムで値を変更すると、イベントが2回発生します。1回は変更したため、もう1回はwpfがバインディングを介して変更したためです。
ありがとう、
c# - この構文を使用する理由 - PropertyChangedEventHandler handler = this.PropertyChanged?
記事http://msdn.microsoft.com/en-us/magazine/dd419663.aspxには、次のコード サンプルがあります。
私の質問は、変数「ハンドラー」を導入することで得られるものです-次のコードは正常に機能するようです:
c# - ジェネリッククラスのジェネリックプロパティを更新しますか?
私はC#Generic Classes
に慣れていないので、ジェネリッククラスのジェネリックプロパティを動的に更新できるかどうかわかりませんか?
クラスがあるとしましょう
指定されたプロパティを1ずつ更新する拡張機能を記述できますか?
どんな助けでもいただければ幸いです!
wpf - XMLファイルへのデータの挿入は、ObservableCollectionに通知します
XMLファイルからデータを取得するObservableCollectionにバインドされたListViewを持つ親ウィンドウがあります。親ウィンドウには、モーダルウィンドウを開く追加ボタンがあります(form2.ShowDialog()、これはモーダルウィンドウだと思います)。
子ウィンドウにはいくつかのテキスト フィールドと追加ボタンがあり、ユーザーが新しいレコードのデータを入力して [追加] ボタンをクリックすると、XML ファイルが新しいレコードで更新されます。
私がやろうとしているのは、子ウィンドウが閉じられたときに、親ウィンドウの ListView が更新されて新しいレコードが表示されることです。
子ウィンドウから XML ファイルを更新するとき、これを XML ファイルに直接行っています。ObservableCollection でイベントを発生させる他の方法でデータをファイルに追加する必要がありますか?
親ウィンドウの追加ボタンにイベント ハンドラーを追加し、XML ファイルの再読み込みを強制しようとするパスをたどっていましたが、これを達成する方法がわかりません。これまでに行ったことを以下に示します。 .
form1.xaml.vb:
refresh_EmContacts サブサブに何を入れる必要があるかを調べることができません。更新されたことを通知し、再読み取りを行うために、ある種の ObservableCollection イベント ハンドラーを呼び出す必要がありますか?
どんな援助でも大歓迎です。
マット
c# - 拡張メソッドからPropertyChangedイベントを呼び出せないのはなぜですか?
「RaisePropertyChanged」のようなメソッドを回避するためにクラスをコーディングしようとしました。その実装を持つクラスから継承できることは知っていますが、場合によっては継承できません。拡張メソッドを試しましたが、VisualStudioに文句があります。
と言いました:
「イベント' System.ComponentModel.INotifyPropertyChanged.PropertyChanged'は、+=または-=の左側にのみ表示されます。」
c# - リフレクションから PropertyChanged を使用する
リフレクションを使用してオブジェクトの属性が変更されたときに通知を受け取りたい。
これは、mjpeg.dll のクラスの 1 つです。
camera.cs で、MJPEGConfiguration オブジェクトを「オブジェクト構成」に設定し、このオブジェクトに PropertyChanged イベントを追加します。
しかし、「Delegate dg = ....」の行で ArgumentException(Error binding to Target Method) が発生しています。この問題を解決するにはどうすればよいですか? または、これを行う正しい方法はありますか?
c# - PropertyChangedCallBack の使用方法
依存プロパティにバインドされた TextBox があり、PropertyChangedCallBack 関数を実装しました。テキストが変更されたときに textbox.ScrollToEnd() を呼び出す必要がありますが、PropertChanged 関数を静的にする必要があるためできません。これを回避する方法はありますか?