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:
- Bir aralıktaki değeri 100; değer datacontext 90; kullanıcı görür 10 değeri için 1 olarak (örn ters
- 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ş:
Vim içinde nasıl etkin bir şekilde bir...
Bir şekilde birden çok öğe oluşturmak ...
Java sınıf yolu içinde birden fazla ka...
Ve en sağlam, en basit şekilde kullanı...
Nasıl böyle büyük mükafat içinde birde...