Редактировать запись в DataGrid WPF - PullRequest
0 голосов
/ 29 марта 2020

Таким образом, моя программа получает значение для DataGrid из другого окна (ту часть, которую я уже решил), и теперь я хотел отредактировать это указанное значение, выбрав строку из моей DataGrid и перенеся указанное значение в новое окно с помощью кнопки щелчка, но Я не знаю, как это мой код Mainwindow:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition SharedSizeGroup="A" Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="50"/>
    </Grid.RowDefinitions>
    <DataGrid Name="myGrid" Grid.Column="12" Grid.Row="0" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True" 
             ItemsSource="{Binding SelectedItem}" Margin="0,0,-0.4,117" >
        <DataGrid.Columns>
            <DataGridTextColumn Width="110" Header="B-day" Binding="{Binding Bday}"></DataGridTextColumn>
            <DataGridTextColumn Width="50" Header="Id" Binding="{Binding Id}"></DataGridTextColumn>
            <DataGridTextColumn Width="100" Header="Id Type" Binding="{Binding IdType}"></DataGridTextColumn>
            <DataGridTextColumn Width="130" Header="Name" Binding="{Binding Name}"></DataGridTextColumn>
            <DataGridTextColumn Width="100" Header="Date Borrowed" Binding="{Binding LoaningDate}"></DataGridTextColumn>
            <DataGridTextColumn Width="130" Header="Amount Borrowed" Binding="{Binding Amount}"></DataGridTextColumn>
            <DataGridTextColumn Width="100" Header="Interest" Binding="{Binding Interest}"></DataGridTextColumn>
            <DataGridTextColumn Width="100" Header="Address" Binding="{Binding Address}"></DataGridTextColumn>
            <DataGridTextColumn Width="100" Header="Contact no." Binding="{Binding ContNo}"></DataGridTextColumn>
            <DataGridTextColumn Width="110" Header="Contact Person" Binding="{Binding ContPer}"></DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
    <Button Grid.Row="1" Grid.Column="0" Content="Add new" Name="AddNew"
     Width="80" Height="30" HorizontalAlignment="Left" Click="AddNew_Click"  />
    <Button Grid.Row="1" Grid.Column="0" Content="Pay" Name="PayTB"
     Width="80" Height="30" HorizontalAlignment="Left" Margin="144,10.4,0,10" Click="PayTB_Click"  />

</Grid>

MainWindow cs:

 public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        Class1.ListCustumer = new List<Customer>();

    }


    private void ShowData()
    {
        myGrid.ItemsSource = null;
        myGrid.ItemsSource = Class1.ListCustumer;
    }

    private void AddNew_Click(object sender, RoutedEventArgs e)
    {
        AddCustomer addCustomer = new AddCustomer();
        addCustomer.ShowDialog();
        ShowData();


    }

    private void PayTB_Click(object sender, RoutedEventArgs e)
    {
        Utility mew = new Utility();
        Payment win = new Payment();
        win.DataContext = mew.SelectedItem;
        win.Show();
    }
}

AddCustomer xaml:

<Grid>
    <Label Content="B-Day:" HorizontalAlignment="Left" Height="25" Margin="43,32,0,0" VerticalAlignment="Top" Width="50" RenderTransformOrigin="0.52,-0.765"/>
    <DatePicker Name="BdayTB" HorizontalAlignment="Left" Margin="137,33,0,0" VerticalAlignment="Top" Width="287"/>
    <Label Content="ID:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="40,61,0,0"/>
    <TextBox HorizontalAlignment="Left" Height="26" Margin="137,61,0,0" TextWrapping="Wrap" Name="IdTB" VerticalAlignment="Top" Width="287"/>
    <Label Content="ID Type:" HorizontalAlignment="Left" Margin="40,92,0,0" VerticalAlignment="Top"/>
    <ComboBox Name="TypeCB" HorizontalAlignment="Left" VerticalAlignment="Top" Width="193" Margin="137,92,0,0">
        <ComboBoxItem IsSelected="True">Compoany ID</ComboBoxItem>
        <ComboBoxItem>School ID</ComboBoxItem>
        <ComboBoxItem>Passport</ComboBoxItem>
        <ComboBoxItem>Driver's License</ComboBoxItem>
    </ComboBox>
    <Label Content="Name:" HorizontalAlignment="Left" Margin="40,123,0,0" VerticalAlignment="Top"/>
    <TextBox HorizontalAlignment="Left" Height="23" Margin="137,126,0,0" TextWrapping="Wrap" Name="NameTB" VerticalAlignment="Top" Width="287"/>
    <Label Content="Date Borrowed:" HorizontalAlignment="Left" Margin="40,154,0,0" VerticalAlignment="Top"/>
    <DatePicker Name="DateLoanTB" HorizontalAlignment="Left" Margin="138,156,0,0" VerticalAlignment="Top" Width="260"/>
    <Label Content="Amount:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="40,185,0,0"/>
    <TextBox x:Name="AmountTB" HorizontalAlignment="Left" Height="23" Margin="138,187,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="120"/>
    <Label Content="Interest:" HorizontalAlignment="Left" Margin="40,216,0,0" VerticalAlignment="Top"/>
    <TextBox x:Name="InterestTB" HorizontalAlignment="Left" Height="23" Margin="138,216,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="26"/>
    <Label Content="Address:" HorizontalAlignment="Left" Margin="41,247,0,0" VerticalAlignment="Top"/>
    <TextBox HorizontalAlignment="Left" Height="23" Margin="138,251,0,0" TextWrapping="Wrap" Name="AddressTB" VerticalAlignment="Top" Width="287"/>
    <Label Content="Contact no:" HorizontalAlignment="Left" Margin="41,278,0,0" VerticalAlignment="Top"/>
    <TextBox HorizontalAlignment="Left" Height="23" Margin="138,279,0,0" TextWrapping="Wrap" Name="ContnoTB" VerticalAlignment="Top" Width="287"/>
    <Label Content="Contact Person:" HorizontalAlignment="Left" Margin="39,309,0,0" VerticalAlignment="Top"/>
    <TextBox HorizontalAlignment="Left" Height="23" Margin="137,309,0,0" TextWrapping="Wrap" Name="ContperTB" VerticalAlignment="Top" Width="262"/>
    <Button x:Name="btn_Add" Content="Add" HorizontalAlignment="Left" Margin="425,371,0,0" VerticalAlignment="Top" Width="75" Click="btn_Add_Click"/>
    <Button x:Name="btn_Close" Content="Close" HorizontalAlignment="Left" Margin="529,371,0,0" VerticalAlignment="Top" Width="75" Click="btn_Close_Click"/>


</Grid>

AddCustomer cs:

public partial class AddCustomer : Window
{
    public AddCustomer()
    {
        InitializeComponent();
    }

    private void btn_Add_Click(object sender, RoutedEventArgs e)
    {
        //getting the value from control
        string bday = BdayTB.SelectedDate.Value.Date.ToShortDateString();
        double id = Convert.ToDouble(IdTB.Text);
        string idtype = ((ComboBoxItem)TypeCB.SelectedItem).Content.ToString();
        string name = NameTB.Text;
        string loaningdate = DateLoanTB.SelectedDate.Value.Date.ToShortDateString();
        double amount = Convert.ToDouble(AmountTB.Text);
        double interest = Convert.ToDouble(InterestTB.Text);
        string address = AddressTB.Text;
        double contno = Convert.ToDouble(ContnoTB.Text);
        string contper = ContperTB.Text;
        //Creating a new object of employee
        Customer customer = new Customer(id, name, idtype, loaningdate, amount, interest, address, contno, contper, bday);
        Class1.ListCustumer.Add(customer);
        //Displaying the message
        MessageBox.Show(this, "The customer has been added.");
        ClearControls();

    }
    private void ClearControls()
    {
        BdayTB.SelectedDate = null;
        IdTB.Text = string.Empty;
        TypeCB.SelectedIndex = 0;
        NameTB.Text = string.Empty;
        DateLoanTB.SelectedDate = null;
        AmountTB.Text = string.Empty;
        InterestTB.Text = string.Empty;
        AddressTB.Text = string.Empty;
        ContnoTB.Text = string.Empty;
        ContperTB.Text = string.Empty;        
    }

    private void btn_Close_Click(object sender, RoutedEventArgs e)
    {
        this.Close();
    }
}

Клиент cs:

 class Customer
{
    public Customer(double id, string name, string idtype, string loaningdate, double amount, double interest, string address, double contno, string contper, string bday)
    {
        set(id, name, idtype, loaningdate, amount, interest, address, contno, contper, bday);
    }
    public double Id { get; set; }
    public string IdType { get; set; }
    public string Name { get; set; }
    public string LoaningDate { get; set; }
    public string Bday { get; set; }
    public double Amount { get; set; }
    public double Interest { get; set; }
    public string Address { get; set; }
    public double ContNo { get; set; }
    public string ContPer { get; set; }

    public void set(double id, string name, string idtype, string loaningdate, double amount, double interest, string address, double contno, string contper, string bday)
    {
        Id = id;
        IdType = idtype;
        Name = name;
        LoaningDate = loaningdate;
        Amount = amount;
        Interest = interest;
        Address = address;
        ContNo = contno;
        ContPer = contper;
        Bday = bday;
    }

}  

Class1 cs:

 class Class1
{
    public static List<Customer> ListCustumer;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...