SORU
9 NİSAN 2010, Cuma


Bir şekilde XAML içinde birden çok değer dönüştürücüler zinciri var mı?

Hangi tamsayı değeri göstermem gereken bir durum, benim veri içeriği üzerinde bir özelliği bağlı, iki ayrı dönüşümleri koyarak sonra var:

  1. Bir aralıktaki değeri 100; değer datacontext 90; kullanıcı görür 10 değeri için 1 olarak (örn ters
  2. bir dize için sayıyı dönüştürmek

Benim kendi dönüştürücü (uygulayan İValueConverter) oluşturarak iki adım da yapabileceğimi fark ettim. Ancak, zaten sadece ilk adım mı bu ayrı bir değer dönüştürücüsü var, ve ikinci adım İnt32Converter ile kaplıdır.

Bu iki varolan sınıflar zinciri bir yolu varXAMLbaşka bir sınıf oluşturmak zorunda kalmadan bu toplamalar?

Eğer herhangi bir açıklık getirmek istiyorum, lütfen bana bildirin. :)

Teşekkürler.

CEVAP
30 Kasım 2011, ÇARŞAMBA


Silverlight projemde Gareth Evans tarafından this method kullandım.

İşte benim uygulama:

public class ValueConverterGroup : List<IValueConverter>, IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return this.Aggregate(value, (current, converter) => converter.Convert(current, targetType, parameter, culture));
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }

        #endregion
    }

Sonra böyle: XAML kullanılabilir

<c:ValueConverterGroup x:Key="InvertAndVisibilitate">
   <c:BooleanInverterConverter/>
   <c:BooleanToVisibilityConverter/>
</c:ValueConverterGroup>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • KIT KAT

    KIT KAT

    3 EKİM 2005