Dans le cadre de l'apprentissage de WPF, je viens de terminer un exercice MS Lab intitulé «Using Data Binding in WPF» (http://windowsclient.net/downloads/folders/hands-on-labs/entry3729.aspx). Pour illustrer l'utilisation d'un IMultiValueConverter, il existe une implémentation pré-codée de celle dans laquelle le résultat booléen est utilisé pour déterminer si la liaison de données est pertinente pour l'utilisateur actuel. Voici le code pour l'opération de conversion:Wpf Liaison de données avec IMultiValueConverter et erreurs de moulage
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) {
// var rating = int.Parse(values[0].ToString());
var rating = (int)(values[0]);
var date = (DateTime)(values[1]);
// if the user has a good rating (10+) and has been a member for more than a year, special features are available
return _hasGoodRating(rating) && _isLongTimeMember(date);
}
Et voici le câblage de l'utiliser dans le XAML:
<ComboBox.IsEnabled>
<MultiBinding Converter="{StaticResource specialFeaturesConverter}">
<Binding Path="CurrentUser.Rating" Source="{x:Static Application.Current}"/>
<Binding Path="CurrentUser.MemberSince" Source="{x:Static Application.Current}"/>
</MultiBinding>
</ComboBox.IsEnabled>
Le code fonctionne très bien, mais le concepteur XAML ne se charge pas avec un " La distribution spécifiée n'est pas valide. " Erreur. J'ai essayé plusieurs façons de ne pas utiliser un casting, dont l'un d'entre eux que j'ai laissé sans commentaire dans le code ci-dessus. La chose drôle est un exercice de laboratoire fini fourni par MS a également l'erreur.
Est-ce que quelqu'un sait comment résoudre ce problème pour rendre le concepteur heureux?
Cheers,
Berryl
Spot sur. On peut se demander pourquoi les gens de MS n'ont pas pris la peine d'expliquer cela aussi bien que vous venez de le faire quand ils publient du matériel * learning *! À votre santé – Berryl