c# - data - ¿Cómo se pasan los datos a un IValueConverter en XAML?
xamarin forms binding xaml (1)
Este es un problema clásico con los convertidores de valores.
Si está utilizando el patrón MVVM, puede resolver ese problema implementando la conversión dentro del modelo de vista de su modelo.
Si no, puede echar un vistazo a esta publicación en los foros de MSDN . (respuesta de Sam Bent - MSFT)
El objetivo es usar multibinding para pasar el modelo a su convertidor, en este caso, pasar el DataContext.
Tengo un IValueConverter cuyo trabajo es convertir un BlockId en una etiqueta de condición. El problema es que mi objeto Modelo es lo que tiene la inteligencia para hacer la conversión real. Mi código se ve así hasta ahora ...
public class BlockIdToConditionLabelConverter : IValueConverter
{
private Model _model;
public BlockIdToConditionLabelConverter(Model model)
{
_model = model;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int blockId = (int)value;
return _model.BlockIdToConditionLabel(blockId);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}
Por el momento, creo un recurso estático en un ResourceDictionary como este (y luego me refiero a él en una DataTemplate):
<local:BlockIdToConditionLabelConverter
x:Key="_blockIdToConditionLabelConverter" />
El problema es que necesito una forma de pasar mi objeto Model a este convertidor. ¿Como podría hacerlo?
Gracias.