2016-04-09 17 views
0

Bir WPF uygulamasına sahibim ve biraz yeni. Görünümler ve ViewModels tasarımı ile oldukça fazla şey yapıldı. Veritabanına bağlanarak gerekli verileri veren bir katman olarak kullanmayı düşündüğüm Model sınıfını tasarlarken takıldım.Model sınıfımı en iyi nasıl tasarlayabilirim?

Müşteri ayrıntılarını görüntüleyen bir Kılavuzum olduğunu varsayalım. Ben darbe gibi bir şey yazma düşündü:

class CustomerModel 
    { 
     public DataView GetCustomerData() 
     { 
      // Fetch the data from Database and prepare a Dataview 
      // return the DataView 
     } 
    } 

Sorunlarım

  • Bütün Müşteri Verilerini gösteren ediyorum, o zaman yukarıdaki yöntem yeterli olacaktır

    bulunmaktadır. Ancak, Grid için GUI'de bir filtre seçeneğim varsa, Filtre parametrelerini temel alan Veriyi bana ayıran ayrı bir işlev yazarım. (Muhtemelen, filtre parametrelerini barındırmak için fonksiyona aşırı yüklenme)
  • Ayrıca, her biri çeşitli tablolardan veri gerektiren 10 Izgaraya sahip olduğumu varsayın. 10 farklı sınıf yazmam gerekecek mi? (Gibi CustomerModel, OrderModel, EmployeeModel .vs)

beni ben Modeli bileşeni ile mücadele nasıl en iyi şekilde bildirin lütfen misiniz?

cevap

0

Tüm Müşteri Verilerini görüntülüyorsam, yukarıdaki yöntem yeterli olur. Ancak, Grid için GUI'de bir filtre seçeneğim varsa, Filtre parametrelerini temel alan Veriyi bana ayıran ayrı bir işlev yazarım. modelinden

Ayrı veri erişim mantığı (Muhtemelen filtre parametrelerini karşılamak için işlevini aşırı) ve mantığını erişmek için Command kullanmak ve modelini doldurun (UI donmasını önlemek için asyncawait desen arayın). Filtreleme ve sıralama işlevlerini kolayca eklemek için DataGrids ItemSource ürününüz olarak ListCollectionView kullanabilirsiniz.

Ayrıca, her biri çeşitli tablolardan veri gerektiren 10 Izgaraya sahip olduğumu varsayalım. 10 farklı sınıf yazmam gerekecek mi? (Gibi CustomerModel, OrderModel, EmployeeModel.etc)

ne yapacağını birtanemsin planlama bağlıdır, ama ben it'd her amaç için farklı modelleri var mantıklı düşünüyorum. Birlikte temel özelliklerinde uygunsuzlukları koyabilirsiniz (örn CustomerModel olan bir tip PersonModel ait Contact -property ve böylece aynı tip bir PersonalData -property ekleyebilirsiniz senin EmployeeModel)

daha fazla ayrıntı gerekiyorsa Sadece sormak veya bir şey net değil.