質問

私はちょうどコレクション(ObservableCollections)を初めてだし、私は簡単だろうと想定壁にヒットしました。私はそれは簡単ですが、私はちょうど答えを見つけていないよと確信しています。

私は、画面の右から左とのTextBoxにデータグリッドとWPFのスクリーンを持っています。 DataGridがのObservableCollection(活動)にバインドされていると私はクリックして、データグリッドダウンと私のTextBoxが正しい情報でリフレッシュ見ることができます。私は、テキストボックス内の情報を変更し、バックDBに保存することができます。すべてが完璧に動作します!

しかし、それは私が正しいアプローチへと迷ってしまいましたコレクションにレコードを追加することになると。下図のように私は、Addメソッドを使用していますが、それは編集することができますので、どのように私は、この新たに作成されたレコードに移動しますか?私はダースのアプローチを試みたが、私は正しいアプローチを見つけるしたことはありません。テキストボックスには、ちょうど最後に編集したレコードに焦点を当てたまま。任意のアイデア?

Private Activities As ObservableCollection(Of ActivityRecord)

Private Sub AddMode()
    Dim _ActivityRecord As New ActivityRecord(0, DateTime.Now, Nothing, "", gWorkerID, "")
    Activities.Add(_ActivityRecord)
'Code to move to the newly created record should go here
役に立ちましたか?

解決

WPFでは、すべてのItemsControlには、コントロールを導出(あなたのDataGridをリスト)の密かのレコード/項目間のナビゲーションを容易にするために、CollectionViewの派生物を使用しています - 実際には、の通貨を提供するクラスです(テキストボックスのような)他のコントロールを助ける機構結合アイテムがあるデータを決定現在の

あなたは新しいオブジェクトを作成し、あなたのObservableCollectionに追加する場合は、その項目の現在を作るために移動するためにCollectionViewのMoveXXXの方法のいずれかを使用することができます。あなたは(CollectionViewのどのような種類に応じて、あなたが得る)もCollectionViewにAddメソッドを呼び出すことができ、それが自動的にあなたの根底にあるのObservableCollectionにAddメソッドを呼び出します。

いずれにせよ、CollectionViewへの参照をretrivingことは秘密です。代わりのObservableCollection、あなたは明示的にListCollectionViewをを作成して、あなたのデータグリッドをバインドすることができますあなたのデータグリッドに使用されているビューを取得するために(私はそれが名前だ忘れる)CollectionViewの静的メソッドを使用するか、または(これは私の好ましい方法です)ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top