[英]WPF MVVM ObservableCollection/DataGrid Multiple Sql Tables
好吧...隨着我繼續迷路自學...這是我最近的問題。 哈! 我有一個使用MVVM的WPF應用和以下三個不同的示例MySQL表:
BOOKINGS
Booking_ID_Num | Book_Type_Num | Fac_ID_Num |
---------------|---------------|------------|
1 | 1 | 2 |
2 | 2 | 3 |
3 | 1 | 1 |
BOOKING_TYPES
Book_Type_Num | Book_Type |
--------------|------------|
1 | Full Time |
2 | Singe Case |
設備
Fac_ID_Num | Facility_Name |
-----------|---------------|
1 | Joe's Shop |
2 | MedRX |
3 | Grocery Story |
我將嘗試盡可能簡潔地解釋這一點,請隨時批評...我想填充一個ObservableCollection並將該ObservableCollection傳遞給DataGrid。 我知道如何通過模型類填充ObservableCollection,但是我不知道如何填充多個表。 在此示例中,我希望在ViewModel中將一個Observable集合傳遞給具有以下結構的DataGrid:
Booking_ID_Num | Book_Type_Num | Book_Type | Fac_ID_Num | Facility_Name |
---------------|---------------|-------------|------------|---------------|
1 | 1 | Full Time | 2 | MedRx |
2 | 2 | Single Case | 3 | Grocery Store |
3 | 1 | Full Time | 1 | Joe's Shop |
基本上,我想在最終解決方案中使用Book_Type和Facility_Name,而不必在MySQL數據庫中進行任何調整(例如創建新的“視圖”等)。 那有意義嗎? 這個站點在幫助我學習方面很棒。 在這個模糊的問題上的任何幫助將不勝感激。 非常感謝!
創建單獨的類,分別表示數據庫中的數據和DataGrid上的數據。
例如:
public class Booking
{
public int BookingIDNum { get; set; }
public int BookTypeNum { get; set; }
public int FacIDNum { get; set; }
}
public class BookingType
{
public int BookTypeNum { get; set; }
public string BookType { get; set; }
}
public class Facility
{
public int FacIDNum { get; set; }
public string FacilityName { get; set; }
}
public class ViewData
{
public int BookingIDNum { get; set; }
public int BookTypeNum { get; set; }
public string BookType { get; set; }
public int FacIDNum { get; set; }
public string FacilityName { get; set; }
public static ViewData From(Booking booking, BookingType bookingType, Facility facility)
{
return new ViewData
{
BookingIDNum = booking.BookingIDNum,
BookingTypeNum = booking.BookingTypeNum,
FacIDNum = booking.FacIDNum,
BookType = bookingType.BookType,
FacilityName = facility.FacilityName
};
}
}
在上面的示例中, Booking
, BookingType
和Facility
表示數據庫中的數據,而ViewData
將是您綁定在DataGrid
上的類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.