問題タブ [inotifypropertychanged]

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

c# - プロパティの設定時に PropertyChangedEventHandler が null である

これで問題は、スライダーを動かしているときにデータバインディングが正しく機能することです(スライダーを動かしているときにモデルが更新されます)。

ただし、ボタンをクリックすると、モデルの値が変更され、ビューが更新されることが期待されます。

以下のコード:

モデル内のコード:

しかし、OnPropertyChanged では、イベントは null であるため、何も起こりません。スライダーが動いているときではなく、イベントが null になるのはなぜですか? また、その解決方法を教えてください。

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

silverlight - Silverlight、Unity、および INotifyPropertyChanged

現在、新しい Silverlight プロジェクトを開始していますが、ViewModel (インスタンス化中) に RaisePropertyChanged イベントが含まれている場合、Unity が例外をスローするという問題があります。

私はこのように見えます:

継承する ViewModelBase は次のようになります。

完全なスタック トレースを以下に示しますが、コンストラクター中に RaisePropertyChanged イベントを呼び出すと、Unity が爆発するようです。

エラーの完全なスタック トレースは次のとおりです。

だから私はNullReferenceExceptionを打っています。私はちょうど方法を解決することはできません...

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

data-binding - F#:データバインディングにINotifyPropertyChangedを使用する

F#タイプで使用するためにINotifyPropertyChangedをどのように実装しますか?ありがとう!

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

.net - .NETがINotifyPropertyChanged.PropertyChangedイベントの受信時に影響を受けていないプロパティの値を読み取るのはなぜですか?

私はデータバインディングに不慣れで、今日、私が理解できない次の奇妙なことに遭遇しました。

2つのラベル(labelAとlabelB)と2つのボタン(buttonAとbuttonB)を持つフォームがあります。

フォームは、2つのプロパティ(CountAとCountB)を持つオブジェクト(「formState」と呼ばれる)をホストします。labelA.TextはformState.CountAにデータバインドされ、labelB.TextはformState.CountBにデータバインドされます。

buttonAが押されると、formStateはプロパティ名として「CountA」を使用してPropertyChangeイベントを発生させます。buttonBが押されると、プロパティ名として「CountB」を使用してformState.PropertyChangeが発生します。

buttonAが押されるとlabelAだけが更新され、buttonBが押されるとlabelBだけが更新されると思います。ただし、いずれかのボタンを押すと、両方のラベルが更新されます。CountAプロパティとCountBプロパティは、値が読み取られるたびにインクリメントしてカウンターを返すため、これを確認できます。以下のコード。

誰かがこの振る舞いについて説明がありますか?

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

winforms - INotifyPropertyChanged を使用して、Winform コントロール プロパティをユーザー コントロールのプロパティにバインドします。

教えてください。Winforms アプリ、C#。DataGridView を含むユーザー コントロール (UC) があります。

まず、UC に「IsComplete」というブール値のパブリック プロパティがあります。私のDGVのRowEnterイベントでは、それに応じてプロパティを設定できます。

次に、この UC を正常にインスタンス化し、メイン フォームの指定された領域にロードします。

問題:メイン フォームのコントロールの 'Enabled' プロパティが、変更されたときに UC の IsComplete プロパティに自動的に応答するようにしたいと考えています 。

これは可能ですか?Google での私の検索はすべて、INotifyPropertyChanged を使用した例を参照していますが、同じクラスでのみです。

これについて何か助けていただければ幸いです。ティア!

-乾杯!

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

winforms - ObservableCollectionWinformsおよび可能な代替手段で

Winforms .net 3.5 アプリ。私のアプリには、次のようなジェネリック クラスがあります。

ある種のフィルター機能を実装したい場合は、すべてのダイアログ ボックスで使用します。そのため、コンストラクターに渡された事前に入力されたダイアログ フォームを呼び出しますList<FilterItem>。ダイアログが読み込まれると、各リスト項目を反復処理して以下を追加します。

  1. チェックボックス
  2. コンボボックス
  3. テキストボックス

TableLayoutPanel のすべての行に。Checkbox は からテキスト プロパティを取得しFilterProperty、Checked ステータスは からFilterPropertyChecked取得します。Combobox は からバインドをFilterOperator取得し、Textbox は からテキスト値を取得しますFilterValue

私がget とだけ言っていることに注意してください。私がやりたいことは、プロパティが変更されるコントロールがバインドされているときに、これらのプロパティを自動的に更新することです。聞いたことObservableCollection<T>がありますが、名前空間を追加した後、Winforms で「アクセス」できないようですSystem.Collections.ObjectModel

これを達成するための最良の方法は何でしょうか。INotifyPropertyChanged を使用した BindingList?? 私は後者の専門家ではなく、いくつかの指針を大いに感謝します-これが私が進むべき道である場合.

ありがとう!

編集:

わかりました、私がやるべきだと思うことを示すためにいくつかのコードを投稿させてください:)。FilterItem クラスに実装する必要があることはわかっているINotifyPropertyChangedので、(たとえば FilterValue 部分のみ):

これで、次のようにすべてが Form_Load にまとめられるはずです (これは Textbox 部分のみで、Checbox と ComboBox は省略しました)。

テキストボックスのデータバインディング DataSource は FilterItem 'item' です。しかし、今は私のビジュアル スタジオ IDE に問題があるようです。私が今知りたいのは、このセットアップはFilterItem、割り当てられたコントロールのそれぞれのプロパティが変更されたときに、個々の を自動的に更新できるようにするのに役立ちますか??

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

wpf - 更新する DataGrid を取得できません

ビュー モデル のにDataGridバインドされた WPF Toolkit があります。にはイベントがあり、その 2 つの文字列プロパティのそれぞれのセッターがイベントを発生させます。また、タイプ のビュー モデルのプロパティにバインドされたグリッドのプロパティもあり、 とも呼ばれます。ObservableCollectionCarCarPropertyChangedSelectedItemCarSelectedItem

グリッドと同じウィンドウにadd、と のボタンがmodifyありdeleteます。 プロパティごとに 1 つずつ、2 つのテキスト ボックスを含むダイアログ ウィンドウを開きAddます。 確認ダイアログを表示してから削除します。modifyCarDelete

addとについてdelete、アイテムを に追加または削除するObservableCollectionと、グリッドは期待どおりに更新されます。しかし、modifyそうではありません。最初Carは使用しませんでしたがPropertyChanged、いくつかの検索の後、個々のアイテムのプロパティが変更されたときにグリッドを更新する必要があることがわかりました。しかし、今は を使用してPropertyChangedいますが、グリッドはまだ更新されません。

SelectedItemコレクションのアイテムを直接変更するだけでなく、ビューモデルの値を変更しようとしました。

私は何を間違っていますか?

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

c# - C#/WPF:ViewModelのすべてのプロパティに対してPropertyChanged?

私はこのようなクラスを持っています:

私の TextBoxes は、ViewModel の Name と Age にバインドされています。ViewModel で _person オブジェクトを変更した場合、各プロパティに対して RaisePropertyChanged を再度呼び出す必要がありますか、またはこれを自動的に行う方法はありますか (私の具体的な例では、約 15 個のプロパティがあります..)?

助けてくれてありがとう。

乾杯ジョセフ

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

wpf - WPFチェックボックスバインディング-プロパティセットの値を変更してもUIには影響しません

簡単なチェックボックスがあります

コードでは、「INotifyPropertyChanged」とプロパティを持つクラスがあります

SomeTest()が!valueを返すため、基になるデータを変更する必要がない場合でも、CheckBoxはIsChecked状態を変更します。

例:
ForceInheritanceはfalseです。
チェックボックスをクリックします。
SomeTest()はfalseを返します。
->基になるデータは変更されません
->チェックボックスがオフのままになると思いますチェック
ボックスがチェックされます。

セッターが実際に値を変更しない場合に、チェックボックスのIsChecked状態を変更しないようにするにはどうすればよいですか?

「OnPropertyChanged( "ForceInheritance");」と思いました トリックを行うだろうが、そうではなかった。

お時間をいただきありがとうございます。

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

.net - WPFおよびSilverlightの静的プロパティで変更されたINotifyPropertyを実装する

問題は、実装INotifyPropertyChangedするイベントが静的ではなく、静的プロパティから呼び出すことができないため、静的プロパティに実装する方法です。また、Silverlightの静的プロパティにバインドすることはできません。

私はこの質問がさまざまな解決策を備えたいくつかのフォーラムをポップアップするのを見ましたが、どれも非常に満足のいくものではありませんでした。

さて、私はエレガントな解決策を見つけたと思いますが、それはとても単純なので、何かが欠けているに違いないように感じます。

答えは、次のように静的変数にアクセスする非静的プロパティを作成することです。

私はそれをテストしました、そしてそれはうまくいくようです。私は何かが足りないのですか?