Ciao a tutti. Ho una form in WPF che contiente una DataGridView e un calendario con implementato il suo metodo calendario_SelectedDatesChanged come di seguito riportati:
Poi ho questa classe per accedere ai dati del DB:codice:<DataGrid AutoGenerateColumns="False" Grid.Row="1" Margin="0,46.86,0,8" Name="dgvAssentiOggi" ItemsSource="{Binding Assenze, Source={StaticResource accessoDati}}" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False" d:LayoutOverrides="Width"> <DataGrid.Columns> <DataGridTextColumn Header="Nome Richiedente" Binding="{Binding NomeRichiedente}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Cognome Richiedente" Binding="{Binding CognomeRichiedente}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Data Compilazione" Binding="{Binding DataDiRichiesta, StringFormat=dd/MM/yyyy}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Ora inizio assenza" Binding="{Binding OraInizioAssenza, StringFormat=HH:mm}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Ora fine assenza" Binding="{Binding OraFineAssenza, StringFormat=HH:mm}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Permesso" Binding="{Binding Permesso, Converter={StaticResource boolToX}}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Ferie" Binding="{Binding Ferie, Converter={StaticResource boolToX}}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Malattia" Binding="{Binding Malattia, Converter={StaticResource boolToX}}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> <DataGridTextColumn Header="Ritardo" Binding="{Binding Ritardo, Converter={StaticResource boolToX}}" CanUserReorder="False" CanUserResize="False" IsReadOnly="True" Width="Auto" /> </DataGrid.Columns> </DataGrid> <Calendar Margin="450,12,0,0" Name="calendario" Height="168" VerticalAlignment="Top" HorizontalAlignment="Left" Width="195" SelectedDatesChanged="calendario_SelectedDatesChanged" />
che non è altro che la statitrosource alla quale faccio il Binding all'iterno della DataGridView.codice:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections.ObjectModel; using System.Windows; using System.ComponentModel; namespace Permessi.ViewModels { public class AccessoDati:INotifyPropertyChanged { private DateTime cambioData; private ObservableCollection<Assenze> assenze = null; public ObservableCollection<Assenze> Assenze { get { return this.assenze; } private set { this.assenze = value; } } public AccessoDati() { if (!MainWindow.IsInDesignMode()) { this.Assenze = new ObservableCollection<Assenze>(); this.AggiornaDati(); } } private void AggiornaDati() { PermessiEntities context = new PermessiEntities(); cambioData = new DateTime(MainWindow.dataSelezionata.Year, MainWindow.dataSelezionata.Month, MainWindow.dataSelezionata.Day); foreach (Assenze el in context.Assenzes) { if(el.DataDiAssenza==cambioData) { this.Assenze.Add(el); } } } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } }
Quello che vorrei fare è aggiornare la datagridview quando vado a modificare la data all'interno del calendario semplicemente cliccando sul giorno. Come vedete ci sto provando e ho iniziato a implementare l'interfaccia INotifyPropertyChanged, ma non so proprio come andare avanti. Potreste aiutarmi? Grazie.

Rispondi quotando
