簡體   English   中英

WPF MVVM ObservableCollection / DataGrid多個SQL表

[英]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
        };
    }
}

在上面的示例中, BookingBookingTypeFacility表示數據庫中的數據,而ViewData將是您綁定在DataGrid上的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM