Pregunta

los Converter propiedad en el código de la publicación del blog, Solución multibinding de Silverlight para Silverlight 4, no es una propiedad de dependencia, por lo que no puedo vincularlo con un convertidor (que por razones técnicas debe instanciarse como parte de la inyección de Unity antes en la aplicación en lugar de como un recurso estático simple como parte de un control de usuario).

¿Cómo puedo modificar el MultiBinding ¿Código para aceptar un convertidor vinculado? Traté de convertirlo en una propiedad de dependencia:

public IMultiValueConverter Converter { get { return (IMultiValueConverter)GetValue(ConverterProperty); } set { SetValue(ConverterProperty, value); } }
public static DependencyProperty ConverterProperty = DependencyProperty.Register("Converter", typeof(IMultiValueConverter), typeof(IMultiValueConverter), null);

Pero tengo

DependencyProperty System.windows.data.imultivalUeconverter. El convertidor no se puede configurar en un objeto de tipo ... vinculante.

Si esta no es una opción viable, ¿cómo puedo atar el ConverterParameter propiedad o obtener algo para simular las enlaces de un convertidor a un MultiBinding?

¿Fue útil?

Solución

Resolví esto usando la ruta de "enlaces simulados", aunque esa no es mi preferencia si alguien tiene otra respuesta. En cambio, lo que hice fue construir el convertidor a través de la inyección de dependencia, sino que usaba la ubicación del servicio para obtener las dependencias necesarias. En general, prefiero la inyección de dependencia a la ubicación del servicio. La "ubicación de servicio" era cuestión de almacenar el contenedor de Unity en los recursos globales de la aplicación; A partir de ahí, no es difícil obtener lo que necesito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top