Question

La Converter propriété dans le code du billet de blog, Solution multibinding de Silverlight pour Silverlight 4, n'est pas une propriété de dépendance, donc je ne peux pas le lier avec un convertisseur (qui pour des raisons techniques doit être instancié dans le cadre de l'injection d'Unity plus tôt dans l'application plutôt que comme une ressource statique simple dans le cadre d'un contrôle utilisateur).

Comment puis-je modifier le MultiBinding Code pour accepter un convertisseur lié? J'ai essayé d'en faire une propriété de dépendance:

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

Mais j'ai

DependencyProperty System.windows.data.imultivaliseConverter. Le convertisseur ne peut pas être défini sur un objet de type ... Binding.Multibinding.

Si ce n'est pas une option viable, comment puis-je lier le ConverterParameter propriété ou obtenir quelque chose pour simuler les liaisons d'un convertisseur en un MultiBinding?

Était-ce utile?

La solution

J'ai résolu cela en utilisant la route "Bindings simulé", bien que ce ne soit pas ma préférence si quelqu'un a une autre réponse. Ce que j'ai fait à la place, ce n'était pas de construire le convertisseur via l'injection de dépendance, mais il l'avait plutôt utilisé l'emplacement du service pour obtenir ses dépendances nécessaires. Généralement, je préfère l'injection de dépendance à l'emplacement du service. L'emplacement de service était une question de stockage du conteneur d'unité dans les ressources mondiales de l'application; De là, il n'est pas difficile d'obtenir ce dont j'ai besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top