問題タブ [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.
.net - スレッドセーフなBindingListを書いた人はいますか?
現在、複数のスレッドで IBindingList を変更すると例外が発生します。自分で作成する前に、スレッドセーフなバージョンを持っている人はいますか?
.net - DataGridView の並べ替えと BindingList など.NET で
" " 連絡先オブジェクトBindingList<T>
のリストを含む Windows フォームでを使用しています。IComparable<Contact>
ここで、ユーザーがグリッドに表示されている任意の列で並べ替えできるようにしたいと考えています。
BindingList<T>
並べ替えを許可するカスタム コレクションを実装する方法を示す方法が MSDN online で説明されています。しかし、Sort イベントや、カスタム コードを使用して基になるコレクションを並べ替えるために、DataGridView (または、さらに良い場合は BindingSource) でキャッチできるものはありませんか?
MSDN で説明されている方法はあまり好きではありません。もう 1 つの方法では、コレクションに LINQ クエリを簡単に適用できます。
c# - 列挙型を取得する値 説明
これらを含む enumHelper クラスがあります。
と
私の列挙型は次のようなものです:
ここまでは順調ですね。前の仕事はすべて順調です。ここで、BindingList> を返す新しいヘルパーを追加したいので、次を使用して任意の列挙型を任意のコンボにリンクできます。
そのために私は追加しました:
しかし、「Enum.Description(value)」はコンパイルさえされていません: 引数 '1': 'T' から 'System.Enum' に変換できません
どうやってやるの?それは可能ですか?
ありがとうございました。
c# - DatagridView + カスタム オブジェクト バインディング
次の列を表示する必要がある .NET 3.5 の datagridview があります。
ID、名前、ID2、名前2
この datagridview は次のようにバインドされます。
問題は、ID2 と Name2 が datagridview に値を表示していないことです。設計時に Datagridview に列を作成し、ID2 と Name2 に対応する列にはデータ プロパティを Class2Ref.ID2 と Class2Ref.Name2 として割り当てました。
UI 側では、ID2 と Name2 が Class1 または Class2 のプロパティであるかどうかはユーザーにとって重要ではありませんが、エンティティの設計レベルでは違いがあります。クラスでは直接利用できないが、参照を介して Datagrid で 2 つのプロパティを表示する方法を教えてください。
winforms - ObservableCollection(Of T)とBindingList(Of T)?
私はこの2年間、いくつかのデータベースのWinformsアプリケーションを開発しましたが、すべて正常に動作します。このアプリケーションは、レイヤー(DataAccess、ビジネスロジック、およびUI)上に構築されています。ビジネスロジックの場合、すべてのオブジェクトは、次の定義を持つBaseEntityという基本クラスから継承します(フレームワーク要素と組み合わせたカスタムオブジェクトとインターフェイスがいくつかあります)。
同じコアライブラリに、汎用ベースコレクションBaseEntityCollectionがあります。これらのコレクションを使用すると、オブジェクトごとに、データベースのアプリケーションで非常に興味深い、関連する強い型のコレクションを定義できます。基本的な定義は次のとおりです。
ご覧のとおり、Winformsでデータバインディングを正しく行うために必要なものをすべて使用しています。
- オブジェクトのINotifyPropertyChanged、INotifyPropertyChanging、IEditableObject。
- 私のコレクションのBindingList(Of T)に基づくコレクション。
新しいテクノロジにも興味があるので、最近WPFに関するWebキャストをいくつか見ました。これらのWebキャストでは、コレクションおよびデータバインディングサポートObservableCollection(Of T)の基本クラスとして使用されます。
一部のアプリケーションをWinformsからUIレイヤーのWPFに移行することを考えています。
私の質問は、私のビジネスロジックでは、BindingList(Of T)に基づいてコレクションを保持する方がよいのか、それともObservableCollection(Of T)から継承するように基本コレクションクラスを変更する必要があるのかということです。Winformsアプリケーション、WPFアプリケーション、またはASP.NETでも使用できる、すべてのプロジェクトに固有のベースコレクションを保持したいと思います。プロジェクトでLinqtoObjectsも使用しているので、フレームワーク2.0のみに基づいてプロジェクトを維持することで制限はありません。
c# - BindingList や ObservableCollection などのクラスがスレッドセーフでないのはなぜですか?
何度も何度も、BindingList と ObservableCollection のスレッド セーフ バージョンを作成する必要があることに気付きました。UI にバインドすると、これらのコントロールを複数のスレッドから変更できないためです。私が理解しようとしているのは、なぜこれが事実なのかということです-それは設計上の欠陥ですか、それともこの動作は意図的なものですか?
c# - C#でBindingListの項目を並べ替えますか?
C#のBindingListでアイテムを移動するにはどうすればよいですか? たとえば、最後に追加したアイテムを前面に移動するか、前のアイテムと入れ替えますか?
c# - プロパティの変更時に BindingList.ListChanged イベントが発生しない
タイプ User の BindingList があります。User オブジェクトにはいくつかのプロパティ (UserName、Password など) があります。イベント ハンドラーを BindingList.ListChanged イベントに結び付けました。ユーザーを追加または削除するときに問題なく動作しますが、ユーザー プロパティが変更された場合、イベントは発生しません。これを達成する方法はありますか?
c# - BindingSource の DataDource は、フォームのプロパティおよびオブジェクトにすることができますか
例: フォームに Contact オブジェクトがあります (以下を参照)。BindingSource のデータソース プロパティを Contact.Addresses プロパティに設定できますか。
クラス AddressCollection は BindingList を実装するため、Contact クラスによってカプセル化されていない場合、これをバインドする問題はありません。
ありがとうアンソニー