I have following XAML code:
<Window x:Class="simpledatagrid.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="IDDATA" Height="350" Width="525">
<Grid>
<DataGrid Name="dgsample" BorderBrush="Black" BorderThickness="2" AutoGenerateColumns="True" CanUserAddRows="True" CanUserDeleteRows="True" Margin="200,10,10,75"/>
<Label Content="ID :" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="26" Width="27"/>
<Label Content="Name :" HorizontalAlignment="Left" Margin="10,60,0,0" VerticalAlignment="Top" Height="26" Width="48"/>
<Label Content="Salary :" HorizontalAlignment="Left" Margin="10,110,0,0" VerticalAlignment="Top" Height="26" Width="47"/>
<TextBox Name="tb1" HorizontalAlignment="Left" Height="20" Margin="60,10,0,0" TextWrapping="NoWrap" Text="" VerticalAlignment="Top" Width="100" />
<TextBox Name="tb2" HorizontalAlignment="Left" Height="20" Margin="60,60,0,0" TextWrapping="NoWrap" Text="" VerticalAlignment="Top" Width="100"/>
<TextBox Name="tb3" HorizontalAlignment="Left" Height="20" Margin="60,110,0,0" TextWrapping="NoWrap" Text="" VerticalAlignment="Top" Width="100"/>
<Button Content="Get" HorizontalAlignment="Left" Margin="10,190,0,0" VerticalAlignment="Top" Width="75" Click="Get_Click" />
<Button Content="Add" HorizontalAlignment="Left" Margin="10,230,0,0" VerticalAlignment="Top" Width="75" Click="Add_Click" />
<Button Content="Delete" HorizontalAlignment="Left" Margin="10,270,0,0" VerticalAlignment="Top" Width="75" Click="Delete_Click" />
</Grid>
</Window>
This is.cs code
public partial class MainWindow : Window
{
ObservableCollection<User> Users = new ObservableCollection<User>();
public MainWindow()
{
InitializeComponent();
Users.Add(new User() { Id = 101, Name = "Allen", Salary = 10 });
Users.Add(new User() { Id = 102, Name = "king", Salary = 20 });
Users.Add(new User() { Id = 103, Name = "scot", Salary = 30 });
Users.Add(new User() { Id = 104, Name = "havy", Salary = 40 });
Users.Add(new User() { Id = 105, Name = "xen", Salary = 50 });
Users.Add(new User() { Id = 106, Name = "len", Salary = 60 });
dgsample.ItemsSource = Users;
}
private void Get_Click(object sender, RoutedEventArgs e)
{
{
User currentUser = Users.Single(select => select.Id == int.Parse(this.tb1.Text));
this.tb2.Text = currentUser.Name;
this.tb3.Text = currentUser.Salary.ToString();
}
}
private void Add_Click(object sender, RoutedEventArgs e)
{
Users.Add(new User() { Id = int.Parse(tb1.Text), Name = tb2.Text, Salary = int.Parse(tb3.Text) });
}
private void Delete_Click(object sender, RoutedEventArgs e)
{
Users.RemoveAt(dgsample.SelectedIndex);
}
}
This code is working,now i need is if i enter wrong ID which is not in the DatGrid it should show in the MessageBox as invalid and also if i enter the ID in the TextBox and click on the delete button it should get delete..please help me with the code I'm new to WPF
Change delete to be more specific by not use indexing to do deletes, rather use actual objects. Also try to plan on any error even a developer mistake, by always checking for null situations.
private void Delete_Click(object sender, RoutedEventArgs e)
{
if (dgsample.SelectedItem != null)
{
var usr = dgsample.SelectedItem as User;
if (usr != null)
{
var deleteMe = Users.FirstOrDefault(us => us.Id == usr.Id);
if (deleteMe != null)
{
Users.Remove(deleteMe);
}
else
{
MessageBox.Show(string.Format("User with Id {0} not found to delete", deleteMe.Id);
}
}
else
{
MessageBox.Show("Unknown type in datagrid")
}
}
else
{
MessageBox.Show("No user selected to delete");
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.