問題タブ [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 に答える
3989 参照

c# - BindingList にオブジェクトを追加する, re-sort and make comboBox update to reflect change

I've got a basic Person class defined like this:

public class Person
{
    public string Name { get; set; }
    public int Age { get; se

I've got a basic Person class defined like this:

Now I'm creating a list of people like this:

Once my list has been populated, I want to sort it by name like this:

Next, I'm creating a BindingList which I will use as the datasource for a combobox like this:

So far, this much is working ok. But now I have a couple of problems that I can't seem to get fixed. First, I need to be able to add Person objects and have the list remain sorted. Right now, I can add a new Person object to the bindingList (via bindingList.Add(newPerson)) and it will show up in the comboBox, albeit at the bottom (i.e., not sorted). How can I re-sort the bindingList once I've added something to it so that it appears sorted in the comboBox?


Tableless model in rails 3.1

Looks like this method doesn't work anymore in rails 3.1. So, does someone have a working solution?

Actually, I've found this gist. It solves problems with columns_hash and column_defaults errors from the railscast's solution but I get ActiveRecord::ConnectionNotEstablished error all the time when I try to write some attribute.

Any thoughts?

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

bindinglist - BindingList ListChanged イベント

バインディング リストで ListChanged イベントをサブスクライブしています。リストが変更された場合 (アイテムの追加/削除)、内部リストを更新します。内部リストには、元のリストの項目に 1 対 1 で対応するオブジェクトが含まれています。アイテムの順序は異なる場合があります。

ドキュメントに基づいて、イベントが発生したとき、ListChangedEventArgs.ListChangedType は、ItemAdded、ItemDeleted、Reset、および ItemChanged のいずれかになります。ListChangedType は、リスト内の項目が変更された場合 (項目が別の項目に置き換えられた場合、またはそのプロパティの 1 つが変更された場合) に ItemChanged になります。

これらのケースをどのように区別して、リスト内の項目が別の項目に置き換えられた場合に内部リストをリロードできますが、それがプロパティの変更である場合は何もしませんか?

これを達成するためのより良い方法はありますか?

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

c# - SortableBindingListに安定したソートを使用させる最も簡単な方法

安定ソートを使用するようにSortableBindingListを変更する方法のがあります。ただし、SortableBindingListの更新バージョンがあります。安定ソートを使用するためにこの新しいバージョンを変更する最良の方法は何ですか?SortableBindingListにフラグを設定して、SortableBindingListのユーザーが、(遅い)安定した並べ替えと(速い)デフォルトの並べ替えのどちらを使用するかを決定できるようにしたいと思います。

ありがとう

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

winforms - コンボボックスへのバインディングリストのデータバインディングとアイテムの削除

Windowsフォームのデータバインディングを使用して、コンボボックスをViewModelクラスに接続しようとしています。

リストからアイテムを削除する場合を除いて、すべて正常に動作します。たとえば、現在選択されているアイテム (コンボボックスで選択されている) を削除すると、コンボボックスの selectedIndexChanged イベントと SelectedValueChanged イベントは発生しません。

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

c# - 比較可能な画像を作成する方法

私はDataGridViewジェネリックにバインドされた を持っていBindingListます。type の列に並べ替え検索を適用できるようにしたいDataGridViewImageColumn基本的な考え方は、名前を画像に保存し、Tag並べ替えと検索に使用することです。どうやってやるの?

それを行うにはいくつかの方法があるようです:

  1. 新しいクラスを継承System.Drawing.Imageして作成し、それを比較可能にします。
    • Imageは抽象クラスであり、それ (およびIComparableインターフェイス) から継承すると、次のエラー メッセージが表示されます。型 'System.Drawing.Image' にはコンストラクタが定義されていません。ここで何が問題なのですか?画像はクラスではありabstractませsealedんが、継承できません!
  2. ApplySortCoreから継承されたクラスの保護されたオーバーライド メソッドを使用しますBindingList<T>

    • このメソッドは次のようになります。

      /li>
  3. DataGridViewColumnから継承した新しい を作成しDataGridViewImageColumnます。
    • これは簡単ではないようで、他のアイデアが使用できない場合に使用できます。

前もって感謝します

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

c# - IBindingList変更通知

IBindingListデータソースからのデータを表示するプログラム(単純なグリッド-特殊な出力を使用)を作成しようとしています。データは問題なく表示できますが、グリッドとは別のTextBoxなどで、ユーザーがデータを編集できるようにすることもできます。私の問題は、2つの要素(グリッドと編集可能なテキストボックス)の間でデータの「自動」更新を実行する方法がわからないことです。

リストのListChangedイベントは、リスト自体がいつ変更されたかを教えてくれると思いますが、リスト内の実際のデータがいつ変更されたかをグリッドが知る必要があります。グリッドの外部で変更が発生したときに私が偶然見つけたのは、BindingManagerBase.Bindings[0].Parseイベントにフックすることだけです。ユーザーがこれを行うわけではありませんが、ユーザーがすべて同じフィールドにバインドされた複数のテキストボックスを確立した場合、各BindingManagerBase.Bindingエントリをループしてフックする必要があると思いますか?

私はこれを正しく行っていないと推測しています。これを達成するためのより一般的な方法があります。私が成し遂げようとしていることに精通している人からの指示をいただければ幸いです。

よろしくお願いします、-マット

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

c# - c# DataGridView.DataSource = BindingList が機能しない

バインディング リストを作成してBindingList<RunData>渡しますCustomMessageBox.Show()DataGridView、リスト要素が表示されません。

これまで使用BindingListしたことはありませんが、オンラインで見つけた例からすると、すべて問題なく実行できたようです。どんな助けでも大歓迎です。

ありがとう!

編集

違いがある場合は、.NET 2.0 を使用しています。

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

c# - バインディングリストとUIコントロール、編集時に更新されない

BindingListをリストボックスに双方向でバインドしています。バインディングリストには、アイテムがバインディングリストに追加または削除された場合にのみリストボックスを更新する画像が多数含まれています。アイテムが変更されたときにバインディングリストがlistchangedイベントも発生させるようにするにはどうすればよいですか?

編集:私が抱えている問題は、オブジェクトのプロパティが変更されておらず、ベースオブジェクトが変更されていないことです。

ただし、これを行った場合、これは機能しません。

次に、バインディングパスをImage.Sourceに設定すると、正しく更新されます。これは、Imageのプロパティが変更されたためですが、最初の例の場合、リスト内の直接アイテムのみが変更されています。では、2番目の例と同じ動作をどのように取得できますか?

最終編集: BindingListの代わりにObservableCollectionを使用すると、この問題が修正されるようです。コレクションの変更を通知するのは同じだという印象を受けました。以下の完全な答え

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

.net - 子バインディング リストの変更が対応するバインディング ソースに反映されない

子クラス SampleTests を持つクラス Sample があります。プレゼンター クラスには、BindingList(Of Sample) プロパティ、CurrentSamples があります。プレゼンターには、バインディング リスト内の指定されたサンプルにテストを追加する AddTest メソッドもあります。

フォームには、プレゼンターの CurrentSamples プロパティにバインドされた SampleBindingSource があります。SampleBindingSource を DataSource として取り、その DataMember を SampleTest に設定する SampleTestBindingSource もあります。

AddTest メソッドを使用すると、テストが実際にそのサンプルに追加されることを確認しました。また、SampleBindingSource に追加されたテストがあることも確認しました。これは、bindingsource レコードをループ処理し、各レコードのテスト数をカウントすることによって行いました。ただし、2 つのテストがあるサンプルの SampleTestBindingSource にレコード数を表示すると、SampleTestBindingSource には 1 つのレコード/テストしか表示されません。

プレゼンターのバインディング リスト、SampleTestsBindingSource、および SampleBindingSource で ResetBindings を試しました。2 つのバインディングソースでも EndEdit を試しました。これらの試みのいずれも、SampleTests の変更を SampleTestsBindingSource に伝達しません。

プレゼンターの変更を取得して、SampleTestsBindingSource まで伝播するにはどうすればよいですか?

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

c# - BindingListここで、T は他のインターフェイスを実装するインターフェイスです

T が A インターフェイスを拡張するインターフェイスである BindingList にこだわっています。この bindingList をバインディングで使用すると、T からのプロパティのみが表示され、継承された A インターフェイスからのプロパティは表示されません。なぜそれが起こっているのですか?.net のバグのようです。これは、2 つのプロジェクトで共通の機能を共有するために必要でした。また、PropertyChanged イベントが baseImplementation からトンネリングされると、バインディング リストの PropertyDescriptor が空になります。添付されたインターフェースと実装。最後にSetUpメソッド