I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
Before deleting the data from the dataGrid, first to load the DataGrid using Edmx file. This is done in previous article. In this article we have new column that is DataGridTemplateColumn , in which we have cell template. When we click on button then row is deleted from DataGrid. Before deleting data from DataGrid , access emp_id from selected row .
<Window x:Class="SplashSCreen.bindgridpanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SplashSCreen"
mc:Ignorable="d"
Title="bindgridpanel" Height="300" Width="300">
<Grid>
<DataGrid CanUserDeleteRows="True" AutoGenerateColumns="False" ColumnWidth="*" x:Name="dataGrid" HorizontalAlignment="Left" Margin="54,56,0,0" VerticalAlignment="Top" Height="178" Width="173">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Emp_Id}" Header="Emp_Id" />
<DataGridTextColumn Binding="{Binding Emp_Name}" Header="Emp_Name" />
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Delete" x:Name="dlt_button" Click="dlt_button_Click"></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
<Window x:Class="SplashSCreen.bindgridpanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SplashSCreen"
mc:Ignorable="d"
Title="bindgridpanel" Height="300" Width="300">
<Grid>
<DataGrid CanUserDeleteRows="True" AutoGenerateColumns="False" ColumnWidth="*" x:Name="dataGrid" HorizontalAlignment="Left" Margin="54,56,0,0" VerticalAlignment="Top" Height="178" Width="173">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Emp_Id}" Header="Emp_Id" />
<DataGridTextColumn Binding="{Binding Emp_Name}" Header="Emp_Name" />
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Delete" x:Name="dlt_button" Click="dlt_button_Click"></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
Codebehind model
using System.Linq;
using System.Windows;
namespace SplashSCreen
{
/// <summary>
/// Interaction logic for bindgridpanel.xaml
/// </summary>
public partial class bindgridpanel : Window
{
TutorialEntities TE = new TutorialEntities();
public bindgridpanel()
{
InitializeComponent();
loadgrid();
}
private void loadgrid()
{
var data = from d in TE.emps select d;
dataGrid.ItemsSource = data.ToList();
}
private void dlt_button_Click(object sender, RoutedEventArgs e)
{
int empid = (dataGrid.SelectedItem as emp).Emp_Id;
emp employee = (from r in TE.emps where r.Emp_Id == empid select r).SingleOrDefault();
TE.emps.Remove(employee);
TE.SaveChanges();
dataGrid.ItemsSource = TE.emps.ToList();
}
}
Comments
Post a Comment