Witam.
Mam problem z bindowaniem do DataGrid. Mam listę klientów, którą odpalam z menu głównego. Datagrid w tym widoku przedstawia się tak:
<DataGrid Name="ClientsTable" IsReadOnly="True" ItemsSource="{Binding ListOfClients}" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" Height="600" Margin="10" Width="800"/>
<Grid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding OpenClientDetails}" CommandParameter="{Binding ElementName=ClientsTable,Path=SelectedItem}"/>
</Grid.InputBindings>
Mam tu dodatkowo opcję, że po podwójnym klknięciu na wiersz przechodzi do tego rekordu oraz generowanie nazw kolumn na podstawie atrybutów pola ClientForView. Ale ja nie o tym.
Otóż jak edytuję klienta to nie odświeża mi tego DataGrida. Nie oczekuję, że samoczynnie go odświeży, tylko zamykam okno z listą klientów, odpalam na nowo i dalej bez zmian... Muszę zamknąć program i odpalić od nowa. Po dodaniu klienta klient pokazuje się w tabeli, tylko podczas edycji nie aktualizuje danych.
Czy ktoś może pomóc?
Poniżej kolekcja, którą binduję oraz metoda, którą wykonuję w konstruktorze ViewModelu okna z datagrid.
private void LoadAllClients()
{
listOfClients = new ObservableCollection<ClientForList>();
var clients = clientService.GetAllClientsForList();
foreach (var client in clients)
{
listOfClients.Add(client);
}
}
private ObservableCollection<ClientForList> listOfClients;
public ObservableCollection<ClientForList> ListOfClients
{
get { return listOfClients; }
set { SetProperty(ref listOfClients, value); }
}