Pregunta

Sólo estoy Primeros pasos con colecciones (ObservableCollections) y me he pegado a una pared que asumí que sería fácil. Estoy seguro de que es fácil, pero yo no estoy encontrando la respuesta.

Tengo una pantalla WPF con una cuadrícula de datos a la izquierda y cuadros de texto a la derecha de la pantalla. La cuadrícula de datos está obligado a ObservableCollection (Actividades) y me puede hacer clic arriba y abajo de la cuadrícula de datos y ver mis cuadros de texto se actualizan con la información correcta. Entonces puede alterar la información en los cuadros de texto y volver a guardarlo en la base de datos. Todo funciona a la perfección!

Sin embargo, cuando se trata de añadir un registro a la colección que estoy perdido en cuanto al enfoque correcto. Estoy usando el método Add como se muestra a continuación, pero ¿cómo puedo mover a este registro recién creado para que pueda ser editado? He intentado una docena de enfoques, pero todavía tengo que encontrar un enfoque correcto. Los cuadros de texto sólo hay que permanecer enfocados en el último disco editado. ¿Alguna idea?

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
¿Fue útil?

Solución

En WPF, cada ItemsControl deriva de control (la lista de su cuadrícula de datos) secreto utiliza un derivado de CollectionView para facilitar la navegación entre registros / objetos - en efecto, es la clase que proporciona el moneda mecanismo que ayudan a otros controles (como el cuadro de texto) determinar qué elemento de datos unido es actual .

Si crea un nuevo objeto y lo agregue a su ObservableCollection, puede utilizar uno de los métodos MoveXXX del CollectionView moverse para hacer que la corriente elemento. Puede (dependiendo de qué tipo de CollectionView que obtienes) también llamar al método Add de la CollectionView, y se llamará automáticamente al método Add en su ObservableCollection subyacente.

De cualquier manera, retriving una referencia a la CollectionView es el secreto. También se puede usar el método estático del CollectionView (no recuerdo su nombre) para recuperar la vista que se utiliza para su cuadrícula de datos, o (y esto es mi método preferido) puede crear explícitamente un ListCollectionView y vincular a su cuadrícula de datos a la misma, en lugar de la ObservableCollection .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top