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; + } } }