0

I'm new to WPF i need to get validations for my three TextBoxes.I tried but couldn't succeed please help me with the code needed.Please suggest me where should i make changes and corrections to get validation

This is my Xaml code

<Window x:Class="DataGrid_DataBinding.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">

<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="{Binding SelectedItem.Id, ElementName=dgsample,ValidatesOnNotifyDataErrors=True,ValidatesOnExceptions=True,NotifyOnValidationError=True,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="100" />

<TextBox Name="tb2" HorizontalAlignment="Left" Height="20" Margin="60,60,0,0" TextWrapping="NoWrap" Text="{Binding SelectedItem.Name, ElementName=dgsample,ValidatesOnNotifyDataErrors=True,ValidatesOnExceptions=True,NotifyOnValidationError=True}" VerticalAlignment="Top" Width="100"/>
<TextBox Name="tb3" HorizontalAlignment="Left" Height="20" Margin="60,110,0,0" TextWrapping="NoWrap" Text="{Binding SelectedItem.Salary, ElementName=dgsample,ValidatesOnNotifyDataErrors=True,ValidatesOnExceptions=True,NotifyOnValidationError=True}" 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" />

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 = "scott", Salary = 20 });
    Users.Add(new User() { Id = 103, Name = "mickey", Salary = 30 });
    Users.Add(new User() { Id = 104, Name = "micheal", Salary = 40 });
    Users.Add(new User() { Id = 105, Name = "fletch", Salary = 50 });
    Users.Add(new User() { Id = 106, Name = "etcher", Salary = 60 });

    dgsample.ItemsSource = Users;

}
private void DG1_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    switch (e.Column.Header.ToString())
    {
        case "Id":

            e.Column.Visibility = Visibility.Hidden;
            break;
        case "Name":
            e.Column.Visibility = Visibility.Hidden;
            break;
        case "Salary":
            e.Column.Visibility = Visibility.Hidden;
            break;
    }
}

private void Get_Click(object sender, RoutedEventArgs e)
{


    int index;
    if (int.TryParse(this.tb1.Text, out index))
    {
        User currentUser = Users.FirstOrDefault(Select => Select.Id == int.Parse(tb1.Text));
        if (currentUser != null)
        {
            this.tb2.Text = currentUser.Name;
            this.tb3.Text = currentUser.Salary.ToString();
        }
        else
            MessageBox.Show("User with the provided ID does not Exist", "Error");
    }
    else
        MessageBox.Show("ID entered is not valid number", "Error");





}



private void Add_Click(object sender, RoutedEventArgs e)
{


    if (!tb1.Text.Equals(""))
    {
        var adduser = Users.Where(User => User.Id == int.Parse(tb1.Text));

        if (!adduser.Any())
        {
            Users.Add(new User() { Id = int.Parse(tb1.Text), Name = tb2.Text, Salary = int.Parse(tb3.Text) });
        }

        else

            MessageBox.Show("Someone already has that ID.");

    }

}

private void Delete_Click(object sender, RoutedEventArgs e)
{
    int index;
    if (int.TryParse(this.tb1.Text, out index))
    {
        User currentUser = Users.FirstOrDefault(Select => Select.Id == int.Parse(tb1.Text));
        if (currentUser != null)
        {
            Users.Remove(currentUser);
        }
        else
            MessageBox.Show("User with the provided ID does not Exist", "Error");
    }
    else
        MessageBox.Show("ID entered is not valid number", "Error");

}
4

1 に答える 1