問題タブ [bindinglist]

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

c# - BindingList の実装

私が取り組んでいるプロジェクトに役立つと信じているので、BindingList についてもっと学ぼうとしています。

現在、ネイティブ .Net オブジェクト (Image) をサブタイプ化するクラス (HashedImage) のサブタイプであるオブジェクト クラス (ScannedImage) があります。2 つのサブタイプを一緒に移動できなかった理由はありません。以前に構築したオブジェクトを単純にサブタイプ化していますが、今度は ScannedImage オブジェクトを RDB に保存します (技術的にではなく、詳細とおそらくサムネイルのみ)。

また、オブジェクト クラスには、独自のカスタム型 (キーワード) であるメンバー型があります。これらのオブジェクトを表示するためにカスタム datagridview を使用していますが、ScannedImage オブジェクトへのすべての変更を独自のコードで処理しています。ご想像のとおり、これらの基本型で発生する処理するイベントがかなりあります。

では、INotifyPropertyChanged を実装するようにオブジェクトを変更した場合、オブジェクト コレクション (BindingList を実装) は ScannedImage オブジェクトへの変更の通知を受け取りますか?

また、Keywords が INotifyPropertyChanged を実装した場合、変更は ScannedImage オブジェクトを通じて BindingList にアクセスできますか?

これがかなり新しいように思われる場合は申し訳ありません。BindingList を発見したのはつい最近のことで、C# プログラミングの正式なトレーニングを受けていません。これを進めるのに苦労しています。

また、誰か良い参考資料があれば、リンクをいただければ幸いです。明らかに、私は MSDN ライブラリを熟読しました。ウェブ上でいくつかの良いリンクを見つけましたが、多くの人が現在 WPF と ObservableCollection を使用しているようです。

私のプロジェクトは、Winforms と .Net3.5 フレームワークに基づいています。

ティア

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

.net - DataGridView とバインディング リスト イベント

タイプバインディングリストのデータソースを持つデータグリッドビューがあります。

datagridview が変更されると、バインディング リスト内の項目が更新されることを理解しています。

また、バインディングリスト内のオブジェクトが Inotifypropertychanged を実装している場合、オブジェクトがグリッド外で変更された場合、オブジェクトはバインドリストに通知し、データグリッドに通知することも知っています

私の質問は:

データグリッドビューがオブジェクトを変更する場合、バインディングリストまたは変更されたオブジェクトが、データアクセスレイヤー側でオブジェクトを永続化するWCFサービスにオブジェクトを渡すことができるイベントを発生させたい.たとえば、Service.Save(ChangedObject)

どうすればこれを行うことができますか?

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

c# - ワーカー スレッドが BindingList に追加するときのクロススレッド操作の例外

に項目を追加する必要があるワーカー スレッドがありますBindingList。ただし、BindingListは にデータバインドされていDataGridViewます。したがって、リストに追加しようとすると、InvalidOperationException (Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on.)

通常、この例外に対して次のようにします。

ただし、Winform コントロールが見えないため、データバインディングは物事を混乱させます。私が持っているのは、例外をスローする次の行だけです。

このシナリオ専用のソリューションがある場合は、すばらしいことです。

そうでない場合、メインスレッドに特定のメソッドを実行するようにワーカースレッドに指示するにはどうすればよいですか (ワーカースレッドによって提供されるいくつかのパラメーターを使用)。私のワーカー スレッドは現在 (データベースへの書き込みなど) 実際に多くの処理を行っており、すべてがスレッド セーフかどうかはわかりません。私は学生で、マルチスレッドは初めてですが、それはまだ私の得意分野ではありません。

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

.net - バックグラウンド スレッドから BindingList<> を更新しますか?

別のスレッドから BindingList コレクションを安全に更新するために、WPF で Dispatcher を使用する方法を考えていました。

私は他のソリューションにもオープンです。

どうもありがとう、ケーブ

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

vb.net - テキストボックスのバインドとしてBindinglistを使用する

バインディングリストがあります。アイテムを表示するためにテキストボックスを使用しています

この方法でアイテムを追加しました

最初のプロパティをテキストボックスにバインドしています

xbindの最初のアイテムであるフォームに「alpha0」が表示されます。「MoveNext」ボタンをクリックしたときにtextbox1の2番目のアイテムを表示するにはどうすればよいですか?

0 投票する
8 に答える
3701 参照

c# - 自己分類リストボックス

簡単そうに見える何かに完全に困惑し、死ぬまで行われた...それでもまだ困惑している。

やりたいこと:WinFormsリストボックスがあります。そのアイテムにはオブジェクトが入力され、DisplayMemberが設定されます。アプリの実行中に、DisplayMemberの背後にあるフィールドなど、リストされたアイテムのデータが変更される場合があります。これが発生したときにリストボックスに表示されるテキストを変更したいのですが、リストボックス自体を再ソートして、アイテムがアルファベット順に残るようにしたいのです。

BindingListは、データが変更されたときに表示されたテキストを更新するために正常に機能しますが、私の人生の間、それを並べ替えることはできません。

私はこれをレビューしました:http: //msdn.microsoft.com/en-us/library/ms993236.aspx

さらに、これを行う方法についての多数のスレッドがありますが、リストボックスでは機能しないようです。

ListBoxでSortedプロパティを設定することも同様に役に立ちません。

ListBoxをソートするために何をする必要がありますか?

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

vb.net - BindingList(Of T)にAddRangeメンバーがないのはなぜですか?

タイトルは私の質問をほぼ捉えていると思いますが、少し背景が続きます。

フォームをロードすると、バインディングリストに数千(30k奇数)のオブジェクトが追加されます。アプリケーションが最初にロードされるとき、オブジェクトのリストをループし、add関数を使用してBindingSourceに追加するのに数秒(メモリから約10秒)かかります。ただし、同じコードをロードする後続のフォームでこれが発生した場合、1〜2秒しかかかりません。

したがって、私のクエリは次のようになります
。1. BindingList(Of T)にAddRangeメンバーがないのはなぜですか?
2. AddRange関数を使用すると、最初と後続の追加が速くなりますか?
3.コードの1つのバージョンが同じバージョンよりも実行が遅い理由について何か考えはありますか?

あなたが提供できるかもしれないどんな助けにも感謝します。

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

.net - BindingListDataGridViewのデータソース

DataGridビューのデータソースに使用したいBindingListがあります。
dataGridView1とボタン1をフォームに追加しました。ボタンを押しても、dataGridViewに何も表示されません。データソースにDataTableを使用すると、正常に機能します。簡単なものが欠けているに違いありません。

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

c# - BindingList で new else update の場合にのみ挿入する

こんにちは、次の情報を持つカスタム BindingList Containing Products があります。

どうすれば次のことができるようになりますか。

リストには2つの製品が含まれているはずです

つまり、ショッピングカートのように機能します

私は、AddingNew イベントを見て、void InsertItem(int index, T item) をオーバーライドします

しかし、私は本当に始めるために少し助けが必要かもしれません

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

c# - DataSource への追加時に ListBox が ArgumentOutOfRangeException をスローする

C# WinForms でaをaBindingListとして使用しようとしていますが、アイテムを に追加しようとすると、スローされます。次のコードは問題を示しています (フォームに があると仮定します)。DataSourceListBoxBindingListArgumentOutOfRangeExceptionListBox listBox1

dataSourceすでにアイテムが含まれている場合、例外は発生しないことに注意してください。

DataSourceアイテムを追加する前にプロパティを設定し、後でnull再設定することで問題DataSourceを回避できますが、これはハックのように感じるので、そうしないようにしたいと思います。

アイテムを追加しても例外がスローされないように、空を使用する(ハックではない)方法はDataSourceありますか?ListBox

編集:スタックトレース:

System.Windows.Forms.dll!System.Windows.Forms.ListBox.SelectedIndex.set(int 値) + 0x1ec バイト
System.Windows.Forms.dll!System.Windows.Forms.ListControl.DataManager_PositionChanged(オブジェクト送信者、System.EventArgs e) + 0x2e バイト
System.Windows.Forms.dll!System.Windows.Forms.CurrencyManager.OnPositionChanged(System.EventArgs e) + 0x39 バイト
System.Windows.Forms.dll!System.Windows.Forms.CurrencyManager.ChangeRecordState(int newPosition、bool Validating、bool endCurrentEdit、bool firePositionChange、bool pullData) + 0x14f バイト
System.Windows.Forms.dll!System.Windows.Forms.CurrencyManager.List_ListChanged(オブジェクト送信者、System.ComponentModel.ListChangedEventArgs e) + 0x2e4 バイト
System.dll!System.ComponentModel.BindingList.OnListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x17 バイト
System.dll!System.ComponentModel.BindingList.FireListChanged(System.ComponentModel.ListChangedType タイプ、int インデックス) + 0x35 バイト
System.dll !System.ComponentModel.BindingList.InsertItem(int インデックス, System._ Canon アイテム) + 0x3f バイト
mscorlib.dll!System.Collections.ObjectModel.Collection.Add(
System._Canon アイテム) + 0x76 バイト