extended ejemplo wpf data-binding datagrid wpftoolkit

ejemplo - cómo obtener la cuadrícula de datos del wpf toolkit para mostrar nuevas filas cuando está unida al conjunto de datos



wpf fill datagrid (2)

¿Hay alguna manera de que el toolkit wpf DataGrid muestre nuevas filas cuando está vinculado a un DataSet ? En otras palabras, tengo un DataGrid , he establecido su ItemsSource en una DataTable , y todo parece funcionar bien, excepto que no puedo hacer que la grilla muestre las filas que agrego a DataTable programáticamente.


No estoy seguro de cómo alguien hubiera averiguado esto, especialmente porque no lo mencioné, pero el problema fue que estaba actualizando el conjunto de datos de un hilo que no era el hilo principal del formulario, es decir, el hilo en el que se creó la cuadrícula en. Puedes hacer actualizaciones desde otro hilo, pero no puedes hacer insertos, aunque no sé por qué. Si alguien pudiera arrojar algo de luz sobre eso, lo agradecería. Creo que la cuadrícula verifica si el inserto entra en otro hilo y, de ser así, lo ignora porque podría causar una excepción.


Puede establecer datagrid.ItemsSource en un ObservableCollection<T> .

ObservableCollection<YourItem> items = new ObservableCollection<YourItem>(); yourDataGrid.ItemsSource = items;

Luego, debería poder agregar a la colección para que aparezcan las nuevas filas:

Editar: basado en información actualizada.

if (Dispatcher.CheckAcces()) { // already on thread UI control was created on items.Add(<your item>); } else { // update on same thread UI control was created on // BeginInvoke would invoke a delegate which would call items.Add(<your item>) Dispatcher.BeginInvoke(...); }

Ver despachador . Todos los objetos System.Windows.UserControl tienen una propiedad Dispatcher .