WinRT'de TypeConverter sınıfı yoktur ve ekip gelecekteki bir sürümde içermeyi planladığını duyurmamıştır. Bir dizi seçeneğin var.
Seçenek 1: dönüşüm Dennis olarak IValueConverter arabirim bahsedilen veri bağlayıcı kullanımının bir parçası olarak yapılması ise.
Seçenek 2: Eğer kendi açık veya örtülü operatörleri ekleyebilir tip yaratıcısı dökümü desteklemeye değilse:
http://msdn.microsoft.com/en-US/library/xhbhezf4(v=vs.80).aspx
http://msdn.microsoft.com/en-US/library/z5z9kes2(v=vs.80).aspx
Seçenek 3: You kendi TypeConverter sınıfınızı oluşturabilir.
4. Seçenek: Kendi uzatma yöntemleri ekleyebilirsiniz (bağlayıcı bir parçası olmayan ben yapardım yön): Böyle bir kod yazalım olur
static public class ConverterExtensions
{
static public string ToFixedString(this double value)
{
return value.ToString("D");
}
}
:
double d = 123.45;
string str = d.ToFixedString(); // str now equals "123"
'TipConverter', özellikle tüm yukarı akış tesisatını düşündüğünüzde oldukça karmaşık bir API'dir; Winrt için evet: oldukça az - yani: soruya cevap vermek için hangi senaryoları desteklemeniz gerektiğini bilmemiz gerekecek. –
Dizeyi yerleşik bir türe ve bir dizeye geri dönüştürme. Burada StringConverter gibi tüm yerleşik dönüştürücüler devreye girecek. Ayrıca 'TypeDescriptor.GetConverter' ve bunların etrafında kullanılan diğer sınıfları kullanıyorum. "MissingFromRt45" sınıf seti oluşturarak ihtiyaç duyduğum bu özelliklerden sadece özellikleri uygulayabilirim, ancak sınıfların listesi oldukça büyük olacak gibi görünüyor. –
Kullandığım tüm 'TypeConverter' malzemelerini alıp özel bir tür dönüştürme ayarına dönüştürmenin daha faydalı olacağını düşünüyor musunuz? Bu şekilde, hangi .NET sürümü üzerinde çalışıyor olursa olsun çalışır. Bu benim önerim olacak –