2016-03-30 28 views
0

yılında Page Hazırlanışı:ben bu tür Page, jenerik türlerini kullanamazsınız öğrendim sonra biraz araştırma UWP jenerik

public class MyPage<T> : Page where T : class 
Bunun sebebi söylememiş olmasıdır

sayfanın xaml dosyası bu T nedir (yanlışsam beni düzelt). Bu kod görünüyor garip değişir ve gerçekten bu çözüm sevmiyorum Görüldüğü üzere

//this page has only cs file 
public class MyPage<T> : Page where T : class 
{ 
} 


//this page again is constructed only from cs file 
public class BasePage : MyPage<ViewModel> 
{ 
} 

//at last we have a page with xaml file that can be shown 
public class MainPage : BasePage 
{ 
} 

: Ben böyle bir şey oluyordu internette bir olası çözüm gördük.

Bu nedenle, birisi bu sorun için iyi bir çözüm sağlayabilir mi? Belki bir örnekle.

+1

Bununla ne yapmak istersiniz? Bir örneğiniz var mı? – Domysee

+0

En azından WinRT'nin açık genetiği desteklemediği için 'internal' sınıfını yapmanız gerekir. 'Typeof (Sayfa ) 'çalışmıyor mu? –

+0

Amaç, yeni bir Sayfa oluşturulduğunda, Sayfa'nın BasePage'den kullanılabilecek bazı temel uygulamalara sahip olması ve genel bir tür olarak geçirilecek olan ViewModel ile bağlanması, örn. Ben BasePage 'kamu soyut geçersiz DoSomething (T ViewModel) yöntemi varsa, ben Page bu yöntemi kullandığınızda' , ben bu 'public void DoSomething (MyViewModel ViewModel) { // bazı güzel şeyler yapacağız } 've ben bir döküm ihtiyacı olmadan beklediğim nesne türünü alacağım. – Stoian

cevap

0

Geçerli XAML özelliklerinde bu desteklenmediğinden, yapmıyorsunuz. Sayfa oluşturma, özellikle de bir görünüm modeli özelliğini güçlü bir şekilde yazmak için harika bir fikir. Platform ekibi bu isteği biliyor, bu arada. Bununla birlikte, etrafta çalışmak isterseniz, IView<T>'u uygulayabilirsiniz.