Kilka błędów na początek:
Kopiuj
private void NameChange_Click(object sender, RoutedEventArgs e)
{
CustomerModel SelectedCustomer = DGCompany.SelectedItems as CustomerModel;
}
Według: https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-windows-silverlight/cc189829(v%3Dvs.95)
DataGrid.SelectedItems jest typem System.Collections.IList<Type T> a ty próbujesz przekonwertować go do CustomerModel
Następnie:
Kopiuj
private void DGCompany_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid dataGrid = (DataGrid)sender;
CustomerModel companyData = DGCompany.SelectedItem as CustomerModel;
if (companyData != null)
MessageBox.Show(companyData.Name);
}
Po co zamieniasz sender na DataGrid, skoro potem odwołujesz się do DGCompany?
Zrób tak:
Kopiuj
private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (sender.GetType() != typeof(DataGrid))
throw new Exception("sender nie jest DataGridem");
DataGrid dataGrid = sender as DataGrid;
if(dataGrid.SelectedItem == null)
throw new Exception("SelectedItem = null");
if (dataGrid.SelectedItem.GetType() != typeof(CustomerModel))
throw new Exception("SelectedItem jest niewłaściwym typem (" + dataGrid.SelectedItem.GetType().ToString() + ")");
CustomerModel companyData = dataGrid.SelectedItem as CustomerModel;
}
I jeszcze jedno - mówisz o najechaniu myszką, a nigdzie nie widzę zdarzeń MouseEnter / MouseLeave