In this article i will show you, how to get the cell value from datagrid in WPF. We all know that dataGrid is use for storing data in a tabular format. By using AutoGenerateColumns we will show our table columns in it. If you want to show your customized columns in it the add DataGridTemplate Column. In it we have cell template, by using this we can design our dataGrid cells. In the first DataTemplate i will take a button control through it we can show the cell value of dataGrid.
<Window x:Class="WpfApplication13.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Name="grid1" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="b1" Click="b1_Click" Content="click" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Id" Binding="{Binding Id}" />
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
In this XAML code we have a Id and Name property which is bind with public property of student class.
using System;
using System.Windows;
namespace WpfApplication13
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
grid1.ItemsSource = Student.getStudent();
}
private void b1_Click(object sender, RoutedEventArgs e)
{
Student st = grid1.SelectedItem as Student;
string studentid = Convert.ToString(st.Id);
string studentName = st.Name;
MessageBox.Show(studentid + " " + studentName);
}
}
}
using System.Collections.ObjectModel;
namespace WpfApplication13
{
class Student
{
public int Id { get; set; }
public string Name { get; set; }
public static ObservableCollection<Student> getStudent()
{
var student = new ObservableCollection<Student>();
student.Add(new Student() { Id = 1, Name = "Jacob" });
student.Add(new Student() { Id = 2, Name = "Bill" });
return student;
}
}
}