Pregunta

Esto probablemente será obvio, pero no puedo encontrar la mejor manera.

Quiero mostrar de tareas basadas en el usuario en un cuadro de lista. Estas de tareas pendientes están en la base de datos y se componen de un ID, ID de usuario y Descripción.

El usuario ha iniciado sesión en la aplicación.

¿Cómo puedo recuperar la tareas basadas en fechas para ese determinado ID de usuario y configurarlo para la unión al cuadro de lista?

Yo estaba tratando con un ObjectDataProvider pero no puedo encontrar la manera de usar que, en combinación con la materia no estático (como mi _dbService, ID de usuario, idioma, ...).

son las únicas opciones para hacer todas esas cosas estática frente a la unión en el código detrás?

Si es así, esto significa que ObjectDataProvider no es muy útil, ¿no? Me parece una gran cantidad de ejemplos de lo que se utiliza con un parámetro codificado pero apenas veo ninguna situación en la que iba a necesitar una funcionalidad tal ..

¿Fue útil?

Solución

Yo hago todo mi WPF utilizando el Model-View-ViewModel patrón. Te he dado un enlace allí, pero Google le dará cargas. MVVM parece ser el patrón estándar para WPF. Este proyecto es probablemente más complicado de lo que necesita, pero está bien escrito y trae a casa el uso de MVVM.

Básicamente, se crea un modelo de sus datos. En este caso, lo que probablemente crear una clase simple (lo llamaré ToDoItem) con propiedades de identificación, ID de usuario y la descripción. Utilice el mecanismo preferido para obtener una colección de éstos de la base de datos. Enlace a SQL, Entity Framework, una consulta estándar, lo que sea.

A continuación, usted tiene su modelo de vista - que tiene una instancia del modelo de vista para cada instancia del modelo: la máquina virtual tiene una referencia a la M y 'delantera' propiedades a la misma. El modelo de vista es lo que se utiliza para manipular el modelo.

A continuación, usted tiene su vista - esta es la interfaz de usuario. Se establece el DataContext de la vista para ser el modelo de vista y luego sus fijaciones enlazar automáticamente con el modelo de vista. Su punto de vista simplemente termina siendo las cosas que se pueden ver. Todo el trabajo se hace en el modelo de vista. Esto significa que es muy fácil de prueba.

Por lo tanto, cuando se hace clic en un botón en su opinión, las fijaciones de pasar este a un comando en el modelo de vista que manipula el modelo.

La interfaz de usuario es también una vista con un modelo de vista. Por lo tanto, la interfaz de usuario VM podría cargar una colección de modelos de la base de datos y pegarlos en un ObservableCollection. La colección de artículos ListBox estaría obligado a esta ObservableCollection.

Es difícil de explicar todo esto en un post como este. Leer un par de artículos y ver lo que piensa. Estoy todavía bastante nuevo en esto, también, pero creo que mi lectura sobre MVVM ha dado sus frutos.

Otros consejos

Hela Thomas, Tom aquí desde Orbit One:)

MVVM es el camino a seguir. Estoy en mi cuarto proyecto y WPF realmente brilla si utiliza MVVM. Usted ya ha probado MVC (o MVP como lo hicimos en recy * neumático) y eso es una buena separación de preocupación. MVVM lo lleva un paso más allá ya que el modelo de vista sabe absolutamente nada de la vista.

La vista se une al modelo de vista, por lo que tiene una referencia a él (2 vías, super potente y funciona más allá de los típicos MS Demo). El modelo de vista es sólo un poco y es una representación de la vista, los datos + comportamiento. Una vez que cavar este párrafo el término fresco MVVM no tendrá secretos.

Me ver si puedo llegar a una pequeña demostración. Tal vez voy a tener tiempo después. Lo que voy a llegar a un punto de vista (XAML, archivo 1) que se une a un modelo de vista (archivo 2, una clase poco, que no debe confundirse con el código detrás). El modelo puede ser lo que quiera (capa de servicio o directamente a los repositorios). Usando el poder de 2 vías de unión que se unirá a una colección observable lo que significa que si añadimos / borrar / ... algo a la colección de la vista lo recogerá sin poner energía en ella.

Mis 2 primeros proyectos de WPF se hizo con Caliburn Micro (ver CodePlex), que es un marco de gran alcance basado en convenciones. Se le protege lejos de WPF Hardcore (creación de propiedades de dependencia gira por sí mismo, principalmente) y se puede crear algo relativamente rápido y sin WPF comprender plenamente. Ese es un aspecto negativo de sí mismo, sino que trabajó para mí. A partir del proyecto de 3 empecé a domesticar esas propiedades de dependencia mí mismo y se le hará un desarrollador mejor WPF.

veo la cuestión es de octubre .. has encontrado una buena solución?

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