1 pièce(s) jointe(s)
[C#, WPF, LINQ] Afficher données dans un DataGrid avec LinQ
Bonjour à tous,
Je me permets de vous contacter, car j'ai actuellement un souci à afficher mes données dans un DataGrid.
Mon but est de réaliser un CRUD comme le tutoriel que j'ai suivi ci joint : https://www.youtube.com/watch?v=EVXD2x_Ia1o
Dans ce tutoriel, le mec fait le traitement avec une seule table/classe puis qu'avec Linq, une classe est une table.
Bref moi j'essaie de récupérer plusieurs informations dans ma BDD, j'ai fait donc une requete avec jointure avec Linq mais je n'arrive pas à afficher mes données.
Voici mon DataGrid:
Pièce jointe 189873
Mon code XAML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="14,92,0,0" Name="BookingData" VerticalAlignment="Top" Height="525" Background="White">
<DataGrid.Columns>
<DataGridTextColumn Header="N°Réservation" Binding="{Binding Path=BookingId, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Nom" Binding="{Binding Path=LastName, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Prénom" Binding="{Binding Path=FirstName, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Date d'arrivée" Binding="{Binding Path=BookingStartDate, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Date de départ" Binding="{Binding Path=BookingEndDate, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Nuit(s)" Binding="{Binding Path=BookingNbNight, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="N°Chambre" Binding="{Binding Path=RoomId, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Total" Binding="{Binding Path=BillTotal, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Acompte" Binding="{Binding Path=PaymentAccount, IsAsync=True}" Width="*"/>
<DataGridTextColumn Header="Statuts" Binding="{Binding Path=BookingStatus, IsAsync=True}" Width="*"/>
</DataGrid.Columns>
</DataGrid> |
Mon fichier xaml.cs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//chargement des donnees
List<BookingPlan> plan = new List<BookingPlan>();
DataClasses1DataContext data = new DataClasses1DataContext();
var sql = from book in data.BOOKING
join cust in data.CUSTOMERS on book.BookingId equals cust.BookingId
join bkRoom in data.BOOKING_ROOM on book.BookingId equals bkRoom.BookingId
join facture in data.BILL on book.BookingId equals facture.BookingId
join pay in data.PAYMENT on facture.PaymentId equals pay.PaymentId
select new { book.BookingId, book.BookingStartDate, book.BookingEndDate, book.BookingNbNight, book.BookingStatus, cust.FirstName, cust.LastName, bkRoom.RoomId, facture.BillTotal, pay.PaymentAccount };
foreach (var item in sql){
plan.Add(new BookingPlan()
{
BookingId=item.BookingId,
BookingStartDate = (DateTime)item.BookingStartDate,
BookingEndDate =(DateTime) item.BookingEndDate,
BookingNbNight = (int)(item.BookingNbNight),
BookingStatus = item.BookingStatus,
FirstName = item.FirstName,
LastName = item.LastName,
RoomId = item.RoomId,
BillTotal = (double)item.BillTotal,
PaymentAccount =(double) item.PaymentAccount,
});
BookingData.ItemsSource = plan;
}
} |
Est ce possible?
Merci par avance