Converter
De Banane Atomic
Aller à la navigationAller à la recherche
ValueConverter
<UserControl xmlns:my="clr-namespace:CurrentNameSpace"> <UserControl.Resources> <my:MyConverter x:Key="myConverter"/> </UserControl.Resources> <TextBlock Text="{Binding Path=., Converter={StaticResource ResourceKey=myConverter}}" /> |
namespace CurrentNameSpace { // L'attribut ValueConversion est optionel, // il permet de spécifier le type d'entrée et le type de sortie [ValueConversion(typeof(int), typeof(string))] public class MyConverter : IValueConverter { public object Convert(object values, Type targetType, object parameter, CultureInfo culture) { var binding1Value = (int)values; ... return ""; // un string } // Conversion inverse non-implémentée public object ConvertBack(object value, Type targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } } |
MultiValueConverter
<UserControl xmlns:my="clr-namespace:CurrentNameSpace"> <UserControl.Resources> <my:MyConverter x:Key="myConverter"/> </UserControl.Resources> <TextBlock.Text> <MultiBinding Converter="{StaticResource ResourceKey=myConverter}"> <Binding ... /> <Binding ... /> </MultiBinding> </TextBlock.Text> |
namespace CurrentNameSpace { // L'attribut ValueConversion n'est pas utilisé ici car il n'est pas adapté // au MultiValueConverter : il ne peut définir qu'un seul type d'entrée public class MyConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { var binding1Value = (int)values[0]; var binding2Value = (string)values[1]; ... return ""; // un string } // Conversion inverse non-implémentée public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } } |