2013-05-06 20 views
9

Ciltleme ile ilgili değeri string.Format veya benzer bir şekilde biçimlendiren bir ciltleme için nasıl bir format ekleyebilirim? Diğer iş parçacıklarında gördüm, bir converterName geçirebilirsiniz.Biçim dizgisi ile MvvMCross Bağlama

  • Bu sorun için bir dönüştürücü var mı?
  • MvvMCross v3'ün standart dönüştürücüler listesini nereden görebilirim?

Kodu kısa bir süre içerisinde inceledim, ancak bir şey bulamadım. İki yönlü bağlamayı yok eden bilgi kayıplarının olabileceğini biliyorum, ama bunu sadece değerleri göstermek için istiyorum. Benim somut durumum bir DateTime'ın bağlanmasıdır. Bunu yapmak için

bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate); 

dileğim ör .:

bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate).WithFormat("hh:mm"); 

cevap

17

, sadece bir StringFormatValueConverter oluşturabilir ve bunu kullanmak biçim dizgesi olarak parametre var kullanabilirsiniz.

Bunu kanıtlamak edeceğiz burada ... yazmak için yaklaşık 2 dakika sürecektir olmalı:

public class StringFormatValueConverter : MvxValueConverter 
{ 
    public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value == null) 
      return null; 

     if (parameter == null) 
      return value; 

     var format = "{0:" + parameter.ToString() + "}"; 

     return string.Format(format, value); 
    } 
} 

sonra

set.Bind(myLabel).To(vm => vm.TheDate).WithConversion("StringFormat", "HH:MM:ss"); 

1 dakika 53 saniye;)

+0

sayesinde. Sadece emin olmak istiyorum, bir dönüştürücü uygulanmadı. Kendi dönüştürücümü yazmak bir sonraki adımım olurdu :) Şimdi senin zamanını geçebilirim ^^ Ama bir soru hala açık: MvvMCross v3'ün standart dönüştürücüler listesini nereden görebilirim? –

+0

kolay cevap - Şu anda, bir standart 'HotTuna' uygulamasında ** yok ** (bazı eklentileri kullanarak eklenebilir ve şu anda çoklu dil bağlama için istenebilir) – Stuart

+0

ahh tamam, şimdi neden yapamadığımı biliyorum bir tane bul :) teşekkürler. –