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

  • After Effects Tutorials w/ Mikey

    After Effect

    24 HAZİRAN 2009
  • kylelandry

    kylelandry

    9 AĞUSTOS 2007
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012