問題タブ [inotifycollectionchanged]

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

c# - ObservableCollection への割り当てが CollectionChanged サブスクライバー リストを破棄しないのはなぜですか?

リロードボタンで置き換える必要がある ObservableCollection があります。これを試しているうちに、変数「myCollection」が「ReLoadData」で無効にされていても CollectionChanged イベントが発生することがわかり (以下のコード例を参照)、CollectionChanged メンバーにイベント ハンドラーを追加していない新しい ObservableCollection を割り当てました。

これは、代入演算子がC#でどのように実装されているかに関係していると思われますが、私が読んだ限りでは、C#ではオーバーライドできないため、上記の動作を説明する方法がわかりません...誰もこれを知っていますか? ?

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

c# - 実行時にデータを DataGrid にバインドする方法

すべて、次のように定義されたいくつかのテストデータで動作するいくつかのテストコードがあります

設計時にバインドされます

DataGridを介して実行時に入力される を作成しました

これはうまく機能しますが、テストデータで動作していたグリッドのビジュアルを更新するコードは、(私が信じている) 存在しないため、もはや機能しませんItemsSource="{Binding TestData}"。に挿入されたテキストTextBoxと のセルにあるテキストをバインドすることになっている XAML は次のDataGridとおりです。

私の質問は;

DataGrid実行時に作成するデータ セットにmy と同じバインディングを作成するにはどうすればよいですか?

私のデータがインターフェイスを実装していないことが理由だと誰かが示唆していますが、データの可変性のために、実行時INotifyCollectionChangedにデータをロードする必要があります。DataGrid

DataGridデータの構造が変更される可能性がある場合、このデータを実装するクラスとしてバインドするにはどうINotifyPropertyChangedすればよいですか?

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

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

wpf - WPF observablecollection の変更時に動的にユーザー コントロールを作成するか、ネストされたユーザー コントロールを使用して、ネストされた ObservableCollections を視覚化します

私は WPF が初めてで、問題の解決策が見つかりません。

ViewModel に Observable Collection があります。

Process クラス内には、別の ObervableCollection があります。

新しいプロセスがアクティブ化されるたびに、ビュー内の StackPanel の 1 つに新しいユーザー コントロール (プロセス データの実際の状態を視覚化できるもの、およびバースト時間) を動的に追加し、プロセスがアクティブになったときにそれを削除します。終了しました(監視可能なコレクションが変更されたとき)..実行中に、バーストタイムコレクションを表示したい..

ユーザー コントロールのコード ビハインドで CollectionChanged イベントをサブスクライブし、別のユーザー コントロール内でユーザー コントロールを使用して、イベント ハンドラーの実行時に必要な TextBlocks を動的に作成しようとしましたが、常に System.Reflection.TargetInvocationException (内部例外: システム) が発生します。 .NullReferenceException) 私の外側の InitializeComponent() が実行されているとき..

それは可能ですか?ObservableCollection の要素の変更に対応しながら、外側の UserControl の分離コードでユーザー コントロールを作成または削除し、内側の ObservableCollection で要素が変更されたときに外側を更新することはできますか? 別のユーザー コントロール内でユーザー コントロールを動的にインスタンス化する以外の方法はありますか? ObservableCollection に ObservableCollection を表示できる特別なコントロールはありますか?

(可能であれば、ObservableCollection の要素と同じくらい異なるユーザー コントロールを使用したいと考えています。)

ご協力いただきありがとうございます!

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

c# - INotifyCollectionChanged が UI を更新していません

以下に示すようなクラスがあります。簡潔にするために削除したすべての機能

以下に示すように、もう 1 つの Model クラスがあります。AddValueCommand は ICommand から派生したクラスですが、これも省略しています。

メイン ウィンドウで、以下に示すように UI をモデルにバインドしています。

そして、私のUIは以下のようになります

ボタンをクリックしても、リスト ボックスが新しい値で更新されません。私がここに欠けているもの。

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

wpf - 同じコレクションの 2 つの ICollectionView への観察可能なバインディング

だから私はフレームワークとして使用WPFするMVVM方法で使用Caliburn.Microしています。

異なる並べ替え、フィルタリング、およびグループ化で 2 回表示する必要がある ObservableCollection を持つ ViewModel があります。

このおそらく単純なアクションに苦労しています。私は通常これを行います:

そして、それはうまく機能し、ソートされ、観察可能です。

そこで、同じ方法で 2 番目のビューを追加しました。

問題は、すべての並べ替え/フィルタリングが両方のビューに対して行われることです (おそらく、デフォルトのビューにアクセスしているため、同じ参照があるためです)。

そのため、新しいインスタンスを実行しようとしましICollectionViewたが、CollectionView使用すべきではなくListCollectionView、リスト用に作成されているIEnumarblesため、メソッドを使用してもToList()ビューはもはや観察できません。

これを行う適切な方法は何ですか?

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

wpf - エンティティを含む wpf dataGrid sum セル

WPF とエンティティ フレームワークで dataGrid を表示します。列 2 には単位あたりの価格があり、列 3 には数量があり (列 4 には割引があります)、列 5 は要約になります。私の質問は、3 番目の列をキャプチャして、合計列の変化を計算する方法です。

ここにコードがありますデータを表示するにはどうすればよいですか

いくつかの方法を試しましたが、結果はありませんでした

助けてくれてありがとう

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

vb.net - VB.NET インデックス '0' は範囲外ですか?

私はWPFでListBoxをItemSource作成し、UIをリフレッシュさせるすべてのクラスとイベントを使用しました。Removeしかし、私の方法には問題があります:

Public Sub Remove(ItemIndex As Integer)
MyList.RemoveAt(ItemIndex)
RaiseEvent CollectionChanged(Me, New NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, MyList(ItemIndex)))
End Sub

しかし、これを実行すると、インデックス (この場合ItemIndexは ) が範囲外であるというメッセージが表示されます。しかし、出力ウィンドウでは、インデックスが '0' であると表示されます (そうしないと、アイテムが から削除されますMyList)。

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

c# - ObservableCollection を ItemsSource として持たずに DataGridViewCell を編集する

ItemsSource が ObservableCollection でない場合、DataGridView がセルの編集を許可しないことを理解するのにかなりの時間がかかりました。私はその仮定で正しいですか?

別の DataGridView の SelectedItem のプロパティを ItemsSource として持つ DataGridView があります。残念ながら、その Property は ObservalbeCollection にすることも、それから派生させることもできません。

したがって、ここでの具体的な問題は、ItemsSource が明示的に OberservableCollection でない場合、DataGridView でセルを編集できないことです。そのため、INotifyCollectionChanged インターフェイスが存在することを願っていました。助言がありますか?

前もって感謝します

ジョン

これは、ItemsSource として機能する ViewModel のコードです。

そして、これは DataGrid の XAML コードです

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

c# - Delete items from LongListMultiSelector

I'm new to Windows Phone 8 development. I've been working with it for about a month now and have written my own news app consuming data from an API. I save article content offline into the app's local storage as .json files. Since I have already them saved offline I want to give my users the ability to 'save' that article to a list of favourites and have one of my pivot items show the list of saved articles for them to access later. I also want that list manageable by the user i.e. I want them to be able to delete the items as necessary.

I'm planning on loading the data context for the list using an object called:

which is simply a

I've read a lot about how to update the current view using INotifyPropertyChanged, but I think that is more about updating properties of existing items in the list. What I need is something that can update the ItemsSource after the user selects an item and then clicks delete in the AppBar. I think that is where INotifyCollectionChanged should come in, but for the life of me, I can't see how to implement it.

Looking for someone to enlighten me or point me at a great example.

I have Googled this to death but cannot find many examples and the ones I have seen, I'm just not getting.

Thanks!