Je souhaite effectuer un transtypage dans une déclaration de liaison dans le code (C#). Voici un morceau rapide code illustrant ma situation:TypeCast dans le chemin de liaison
Binding aBinding = new Binding();
aBinding.Mode = BindingMode.OneTime;
aBinding.ElementName = "FullPagePageViewGrid";
//aBinding.Path = new PropertyPath("((IPageLayout)Children[0])"); // What I'd like to do - causes error
aBinding.Path = new PropertyPath("Children[0]");
aBinding.Converter = new IsSelectedTextBoldConverter();
this.aLabel.SetBinding(Label.ContentProperty, aBinding);
Voici l'erreur que je reçois - sans surprise, VS se plaint de ne pas trouver le chemin:
System.Windows.Data Error: 39 : BindingExpression path error: '((IPageLayout)Children[0])' property not found on 'object' ''Grid' (Name='FullPagePageViewGrid')'. BindingExpression:Path=((IPageLayout)Children[0]); DataItem='Grid' (Name='FullPagePageViewGrid'); target element is 'Label' (Name='aLabel'); target property is 'Content' (type 'Object')
C'est ce dont j'avais peur. J'ai réussi à utiliser un convertisseur mais je voulais voir si je pouvais le connecter directement. Merci! – Joel