問題タブ [bindingsource]

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 投票する
2 に答える
10514 参照

vb.net - VB.NET BindingSource を反復処理する方法

DataTable にバインドされた BindingSource があります。

BS フィルターを使用しており、Bindingsource を使用して DataTable のフィルター処理されたデータセットを反復処理したいと考えています。

MoveFirst と MoveNext を実行し、BS.Position を使用するたびに、基礎となる DataTable で正しい行を取得できることを知っています。しかし、セットがいつ終了するかをどのように知ることができますか? 確かにそのようなプロパティがあるに違いありませんが、それは何ですか?

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

c# - bindingsource currentitem 変更イベントで textbox.text を再割り当て

バインディングソースなどを学習しているだけです。テキストボックスのデータバインディングを次のように追加しました。

ユーザーがナビゲーターの次のボタンをクリックすると、バインディングソースの currentitem changed イベントを処理する必要がありますか?

たくさんのコントロールがあるので、これは自動であると思っていたので、退屈そうです

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

silverlight - テキスト ボックスの DataContext を Silverlight の現在のクラスに設定する

ユーザーコントロールにテキストボックスがあり、ユーザーコントロールにプロパティを作成しました。テキストボックスのテキストプロパティをユーザーコントロールで作成されたプロパティにバインドしたいと思います。

問題は、XAML で現在のクラスにデータ コンテキストを指定する方法がわからないことです。

何か案が??ありがとう

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

vb.net - BindingSource / BindingNavigator:バインドされたデータソースの編集を防ぐ方法は?

VB.NETとVisualStudio2005を使用してデータソースを作成しました。データソースをダイアログにドラッグすると、VSはリンクされたオブジェクトのメンバーであるaSystem.Windows.Forms.BindingSourceと。を含むテキストボックスを作成しましたSystem.Windows.Forms.BindingNavigator

リスト(myListと呼ばれる)にデータを入力し、BindingSourceでmyListをDataSourceとして設定すると、これを読み取り専用にしたいという事実を除いて、物事はうまく機能します。ユーザーがテキストボックスの1つで何かを変更すると、変更が保存されます。

BindingSourceにバインドする読み取り専用コレクションを作成しようとしましたが、問題は解決しませんでした。

すべてのテキストボックスを無効にできると思いますが、それは少し手間がかかるようです。さらに、読みやすくするためにフォントの色を変更したいと思います。

理想的には、ユーザーがテキストボックスにフォーカスを設定したり、コンテンツを編集したりできるかどうかは気にしないでしょうが、変更を保持したくないだけです。つまり、誰かが何かを編集し、ナビゲーターを使用して次のレコードに移動してから戻ってきた場合、ユーザーがそれを再生する前の状態のままにしておく必要があります。

何か提案/ガイダンスはありますか?

前もって感謝します!

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

windows - Windows DataGridView BindingSource インデックス範囲外の例外

シナリオ:

基本的に私は

  • System.Windows.Forms.DataGridView

  • BindingSource と IBindingList を継承するクラス

  • 2 つの標準 List をプライベート プロパティとして持つクラス

DataGridView dgv = 新規 ...

MyBindingSource bindingSource = new ...

MyList リスト = 新規 ...

DataGridView.DataSource プロパティが BindingSource に設定され、BindingSource.DataSource がリストのプライベート リストの 1 つに設定されます。

bindingSource.DataSource = list.ListA;

dgv.DataSource = bindingSource;

データベースから大量の情報ストリーミングを取得しています。情報をオブジェクトに変換し、一度に 1 つずつ MyList に追加すると、最終的に DataGridView に表示されます。

すべてが理にかなっていることを願っていますが、問題は次のとおりです。単一のオブジェクトをリストに追加した後 (バインディングソースではありません)、アイテムを DataGridView に表示したいと考えています。しかし、現在それを機能させる唯一の方法は、1 つの新しいオブジェクトが追加された bindingSource の別のインスタンスを構築し、DataGridView.DataSource を新しい bindingSource に設定することです。もちろん、これは恐ろしく非効率的であり、データグリッドビューは毎回すべてを無効にする必要があり、危険です。

代わりに、DataGridView に新しいオブジェクトが追加されたことを通知する BindingSource を List に通知して、それを行うことができるようにします。これを試しましたが、「インデックス -1 のアイテムには値がありません」という IndexOutOfrange 例外が発生し続けました。BindingSource を調べたところ、実際には位置が -1 で、Current プロパティが同じ例外をスローしました。位置と現在のプロパティが正しいたびに新しい BindingSource を作成すると。

では、項目をリストに追加したときにこれらのプロパティを更新するにはどうすればよいでしょうか? リフレクターで開いて、どこに設定されているかを確認したところ、「CurrencyManager」が関係しているように見えました。base.OnDataMemberChanged base.OnListChanged のようないくつかのことを試しましたが、役に立ちませんでした。

編集:データグリッドビューの行をクリックしたときにのみ例外が発生することを忘れていました。アイテムが正常に追加されます。したがって、DataGridView が BindingSource と同期していないようです

0 投票する
6 に答える
14644 参照

c# - バインディング ソースは、変更が発生したかどうかを教えてくれますか?

winforms のデータ バインディングで使用してBindingSourceいる があり、データに変更を加えた後にユーザーがフォームを閉じようとしたときに何らかのプロンプトが表示されるようにしたいと考えています。一種の「変更を保存せずに終了してもよろしいですか?」

「has changed」ブール値を反転するだけで、 BindingSource'sイベントを介してこれを実行できることを認識しています。CurrencyManager.ItemChanged

ただし、より堅牢な機能が必要です。 現在のデータが元のデータと異なる時期を知りたいです。 イベントは、何かが変わったかどうかを教えてくれます。ユーザーはプロパティを変更して元に戻すことができますが、保存するデータに変更があると思います。

このようなメモ帳の機能を模倣したい

  • メモ帳を開く
  • 何かを入力
  • すべてを削除します(基本的に、行ったことを元に戻します)
  • メモ帳を閉じる、メモ帳が閉じます。終了状態 == 初期状態を知っているため、変更を保存するプロンプトは表示されません

これが不可能な場合は、ItemChanged上記のイベント ハンドラーを使用する必要がありますか、それとももっと良い方法がありますか?

記録のために、私は次の線に沿って何かを探しています

これではない

現在の状態と初期状態を自分で管理する必要はなく、その情報を取得する方法を探してBindingSourceBindingSourceますタイプなどに関係なく、さまざまなデータ ソースの機能。

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

c# - BindingSource の Find() に関するヘルプ

これを使用して、DataGridView で値を探します。

しかし、私には2つの問題があります。まず、dgv に存在しないアイテムを探すと、position はデフォルトで最初の行である 0 を返します。私はそれを望んでおらず、If ステートメントを使用して検証すると、位置 0 が失われ、最初の行が失われます。

2 つ目は、行ヘッダーに注目し、見つかった項目を強調表示することです。そんなことがあるものか?。

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

wpf - WPF IsReadOnly プロパティのバインド

データコンテキストのプロパティ値を IsReadOnly プロパティにバインドする方法はありますか?

例えば:

または、DataTrigger を作成する必要がありますか?

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

vb.net - DataBinding:SelectedValueが変更されたときにComboBox.Textが更新されませんか?

にバインドされた、とにProbationComboBoxバインドされたがあります。SelectedValueRegistrationBindingSourceDisplayMemberProbationBindingSource

を呼び出すRegistrationBindingSource.ResetCurrentItem()と、SelectedValueプロパティはからの正しい値で更新されますRegistrationBindingSource.ProbationID()が、Textプロパティは更新されません。

ComboBoxでデータバインディングを設定する方法は次のとおりです。

バインディングの問題を理解できるまで、これを一時的な修正として使用しました。

何か案は?ありがとう!