Soy nuevo en WPF y quiero hacer algunos enlaces de datos básicos. Tengo una Lista de un CustomObject y quiero vincularlo a un DataGrid.¿Cómo puedo vincular una Lista <CustomObject> a un WPF DataGrid?
MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<ArticleItem> list = new List<ArticleItem>()
{
new ArticleItem(){ ID=3, Title="test", ViewCount=5},
new ArticleItem(){ ID=3, Title="test", ViewCount=5},
new ArticleItem(){ ID=3, Title="test", ViewCount=5},
new ArticleItem(){ ID=3, Title="test", ViewCount=5},
};
}
}
public class ArticleItem
{
public int ID { get; set; }
public int ViewCount { get; set; }
public String Title { get; set; }
}
}
Este es el aspecto de mi rejilla como:
<DataGrid Height="179" HorizontalAlignment="Left" Margin="54,65,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="382">
<DataGrid.Columns>
<DataGridTextColumn Header="ID"/>
<DataGridTextColumn Header="ViewCount" />
<DataGridTextColumn Header="Title" />
</DataGrid.Columns>
</DataGrid>
Estoy acostumbrado al enlace de datos de ASP.Net, donde puedo decir fácilmente:
this.dataGrid1.DataSource = list;
¿Cómo debo proceder en WPF?
Tengo varias filas en una cuadrícula de datos en la que cada fila de la cuadrícula de datos tiene un botón que abre una ventana emergente en su clic y en la ventana emergente tengo otra cuadrícula de datos con el botón. Ahora al hacer clic en este botón quiero tomar los datos de fila respectivos de el cual se hace clic en el botón y agrega esta fila de datos a la primera fila DataGrid desde la cual se abre la ventana emergente. –