Je veux lier mon MultiDataTrigger.Conditions au bouton radio, mais cela ne fonctionne pas. voici mon scénario.Impossible de trouver la source pour la liaison avec la référence
En wpf, j'ai un GridPanel, qui suppose d'y avoir des radiobuttons.
je générer radiobuttons dynamiques dans GridPanel, comme ceci:
RadioButton allAccountBtn = new RadioButton();
allAccountBtn.Name = "allAccountBtn";
GridPanel.Children.Add(allAccountBtn);
puis dans mon XAML, j'avais un bouton d'image qui va changer en fonction de cette sélection radiobutton, et la propriété d'un autre contrôle.
voici mon code:
<Button>
<Button.Template>
<ControlTemplate>
<Image Name="addFolderIcon" Source="Icon/Decoration/folderColor.png">
<ControlTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Tag, ElementName=folderBackBtn}" Value="{x:Null}"/>
<Condition Binding="{Binding IsChecked, ElementName=allAccountsBtn}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Control.IsEnabled" Value="False"/>
<Setter TargetName="addFolderIcon" Property="Source" Value="Icon/Decoration/folder.png"/>
</MultiDataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
Quand je lance le programme, il affiche le code d'erreur: "Impossible de trouver la source pour la liaison avec référence", et les conditions return false pour la deuxième condition (elementName = allAccountsBtn)
Pourquoi cela se produit-il?
De toute façon puis-je me référer pour obtenir la propriété IsChecked de RadioButton nommé dynamiquement et généré?
Si j'ajoute un bouton radio dans mon xaml, il peut être détecté, donc le problème est maintenant, ElementName ne peut pas trouver le contrôle généré dynamiquement. – VHanded