From fecb1adae0b58e5d41ef6e273057b99178ac9d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0?= Date: Sat, 27 Oct 2018 20:55:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=82=D0=B0=D1=82=D1=83=D1=81=D1=8B=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=D1=85=20DataGridRow=20=D1=82=D0=B5=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D1=8C=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D1=8E=D1=82=D1=81=D1=8F=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=BE?= =?UTF-8?q?=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83=D1=8E?= =?UTF-8?q?=D1=89=D0=B8=D1=85=20=D1=81=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D1=8F?= =?UTF-8?q?=D1=85.=20=D0=A2=D0=B0=D0=BA=D0=B6=D0=B5=20=D0=B2=D0=BE=D1=81?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0,=20=D0=BE=D1=81=D1=83=D1=89=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=BB=D1=8F=D0=B2=D1=88=D0=B5=D0=B3=D0=BE=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=B8=D0=B7=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BF=D0=B0=D0=BD=D0=B8=D0=B8=20=D0=B2=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D1=83=20=D0=B2=D1=81=D0=B5=D1=85=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BF=D0=B0=D0=BD=D0=B8=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eCompanies/MainWindow.xaml | 3 ++- eCompanies/MainWindow.xaml.cs | 22 ++++++++++++++++++++-- eCompanies/UsersWindow.xaml | 3 ++- eCompanies/UsersWindow.xaml.cs | 20 +++++++++++++++++++- 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/eCompanies/MainWindow.xaml b/eCompanies/MainWindow.xaml index f22ceda..7675600 100644 --- a/eCompanies/MainWindow.xaml +++ b/eCompanies/MainWindow.xaml @@ -8,7 +8,8 @@ Title="MainWindow" Height="450" Width="800" Closing="Window_Closing"> + Width="772" ItemsSource="{Binding}" AutoGenerateColumns="False" CellEditEnding="companyGrid_CellEditEnding" + AddingNewItem="companyGrid_AddingNewItem"> ; + for (int i = 0; i != c.Count(); i++) + if (c[i].CompanyId.Equals(updatingCompany.CompanyId)) + c[i] = updatingCompany; + companyGrid.Items.Refresh(); + + } + + private void companyGrid_AddingNewItem(object sender, AddingNewItemEventArgs e) + { + e.NewItem = new Company(); + var newItem = e.NewItem as Company; + newItem.dataGridRowStatus = DataGridRowStatus.NEW; + var c = ((DataGrid)sender).DataContext as ObservableCollection; + if (c.Count != 0) + newItem.CompanyId = ++c[c.Count - 1].CompanyId; } private void companyGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { - ((Company)e.Row.Item).dataGridRowStatus = DataGridRowStatus.UPDATED; + var context = e.Row.DataContext as Company; + if (context.dataGridRowStatus != DataGridRowStatus.NEW) + context.dataGridRowStatus = DataGridRowStatus.UPDATED; } private void RowEdit_Click(object sender, RoutedEventArgs e) @@ -36,7 +54,7 @@ namespace eCompanies UpdateCompanyGridDelegate d = updateCompanyItem; Company company = (Company)companyGrid.CurrentItem; if (usersWindowInstance != null) usersWindowInstance.Close(); - usersWindowInstance = new UsersWindow(company, d, deletingUsersList); + usersWindowInstance = new UsersWindow(company, d); usersWindowInstance.Show(); } diff --git a/eCompanies/UsersWindow.xaml b/eCompanies/UsersWindow.xaml index d84be8c..af92c1c 100644 --- a/eCompanies/UsersWindow.xaml +++ b/eCompanies/UsersWindow.xaml @@ -12,7 +12,8 @@ + Width="772" ItemsSource="{Binding}" AutoGenerateColumns="False" CellEditEnding="usersGrid_CellEditEnding" + AddingNewItem="usersGrid_AddingNewItem"> diff --git a/eCompanies/UsersWindow.xaml.cs b/eCompanies/UsersWindow.xaml.cs index 84681c4..78126f6 100644 --- a/eCompanies/UsersWindow.xaml.cs +++ b/eCompanies/UsersWindow.xaml.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Windows; +using System.Windows.Controls; using System.Windows.Input; namespace eCompanies @@ -15,7 +16,7 @@ namespace eCompanies Company currentCompany; UpdateCompanyGridDelegate updateCompanyItem; - public UsersWindow(Company c, UpdateCompanyGridDelegate d, List deletingUsersList) + public UsersWindow(Company c, UpdateCompanyGridDelegate d) { InitializeComponent(); currentCompany = c; @@ -75,5 +76,22 @@ namespace eCompanies ((Users)usersGrid.SelectedItem).dataGridRowStatus = DataGridRowStatus.REMOVED; usersGrid.Items.Refresh(); } + + private void usersGrid_CellEditEnding(object sender, System.Windows.Controls.DataGridCellEditEndingEventArgs e) + { + var context = e.Row.DataContext as Users; + if (context.dataGridRowStatus != DataGridRowStatus.NEW) + context.dataGridRowStatus = DataGridRowStatus.UPDATED; + } + + private void usersGrid_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e) + { + e.NewItem = new Users(); + var newItem = e.NewItem as Users; + newItem.dataGridRowStatus = DataGridRowStatus.NEW; + var c = ((DataGrid)sender).DataContext as ObservableCollection; + if (c.Count != 0) + newItem.UserId = ++c[c.Count - 1].UserId; + } } }