Enlace de cuadrícula de datos en WPF

Sé que esto ya se ha pedido, pero he hecho casi todo lo que sugieren los desarrolladores.

      

Estoy intentando mostrar esto en el cuadro de diálogo modal y rellenar la lista de licencias en el constructor del cuadro de diálogo modal. Pero todavía nada se está poblando dentro de la cuadrícula de datos.

Código de constructor:

 public diagboxclass() { List list = new List(); list = GetObjectList(); } public class object { string id; DateTime date; public string ID { get { return id; } set { id = value; } } public DateTime Date { get { return date; } set { date = value; } } } 

¿Ustedes piensan algo que ver con la lista de objetos?

POR FAVOR, no use object como nombre de clase:

 public class MyObject //better to choose an appropriate name { string id; DateTime date; public string ID { get { return id; } set { id = value; } } public DateTime Date { get { return date; } set { date = value; } } } 

Debe implementar INotifyPropertyChanged para esta clase y, por supuesto, INotifyPropertyChanged en el INotifyPropertyChanged de propiedades . De lo contrario, los cambios no se reflejan en tu interfaz de usuario.

Su clase Viewmodel class / dialogbox debería tener una Property de su lista MyObject . ObservableCollection es el camino a seguir:

 public ObservableCollection MyList { get... set... } 

En su xaml , debe establecer Itemssource en su colección de MyObject . (¡El Datacontext tiene que ser tu clase de cuadro de diálogo!)

       

Sin ver dicha lista de objetos, creo que deberías enlazar a la propiedad ItemsSource de DataGrid, no a DataContext .

       

(Esto supone que el elemento [UserControl, etc.] que contiene DataGrid tiene su DataContext vinculado a un objeto que contiene la colección de list . El DataGrid se deriva de ItemsControl , que se basa en su propiedad ItemsSource para definir la colección que vincula sus filas Por lo tanto, si la list no es propiedad de un objeto vinculado al DataContext de su control, es posible que necesite establecer DataContext={Binding list} y ItemsSource={Binding list} en el DataGrid …)

intenta hacer esto en el código de detrás

  public diagboxclass() { List list = new List(); list = GetObjectList(); Imported.ItemsSource = null; Imported.ItemsSource = list; } 

También asegúrese de que su lista esté efectivamente poblada y como lo menciona Blindmeis, nunca use palabras que ya tengan una función en c #.