2017-11-30 11 views
0

Ok ... 계속해서 자신을 가르치면서 자신의 길을 혼란스럽게합니다 ... 여기에 최근 질문이 있습니다. 하아!WPF MVVM ObservableCollection/DataGrid 여러 SQL 테이블

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 | 
,536,913을 : 나는 다음과 같이 WPF 응용 프로그램이 MVVM 세 가지 다른 샘플 MySQL의 테이블을 사용하여이

가능한 한 간결하게 설명하려고합니다. 비판을 자유롭게 해주십시오. ObservableCollection을 채우고 ObservableCollection을 DataGrid로 전달하고 싶습니다. 모델 클래스를 통해 ObservableCollection을 채우는 방법을 알고 있지만 여러 테이블을 채우는 방법을 모르겠습니다. 하지 않고도

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 데이터베이스의 모든 조정. 말이 돼? 이 사이트는 내가 배울 수있게 해주는데 아주 훌륭했습니다. 이 막연한 질문에 대한 도움을 주시면 감사하겠습니다. 정말 고맙습니다!

답변

1

데이터베이스의 데이터와 DataGrid의 데이터를 나타내는 별도의 클래스를 만듭니다.

예를 들어

: ViewData 당신이 당신의 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, BookingTypeFacility는 데이터베이스에 데이터를 나타냅니다.

+0

확인. 그것은 다소 의미가 있습니다. 그렇다면 데이터베이스에서 각 속성을 어떻게 채울 수 있습니까? MySQL 데이터 가져 오기 메소드를 각 속성의 "설정"에 넣거나 ViewData 클래스와 함께 사용할 수있는 "foreach"메소드와 같은 것이 있습니까? 나는 내 무지를 사과한다. 배우려고. – Progolfer79

+0

수정 된 답변보기 ViewData.From 메서드. 그 질문에 대답합니까? –

+0

죄송합니다 ... 너무 혼란스러워서 생각하고 있습니다 ... MySQL 데이터베이스의 데이터를 모델 클래스 "예약", "예약 유형"및 "시설"로 가져 오는 방법은 무엇입니까? 모델 클래스가 어떤 기능을 가지고 있지 않다고 생각했습니다. 아니? 그렇지 않다면 MySQL 데이터를 "ViewData"클래스에 어떻게 가져 옵니까? 마지막으로, 어떻게 서로 다른 속성이 서로 관련되어 있으므로 열에 3 ~ 4 개의 다른 목록/컬렉션 세트가 남지 않았습니다. IE : Fac_ID_Num이 1 일 때, "조 상점 (Joe 's Shop)"은 Facility_Name의 세 번째 값이 아닌? – Progolfer79