2010-11-15 5 views
0

J'ajoute un à la « Société » RibbonApplicationMenuItem dans mon RibbonWindow avec le code suivant:WPF Liaison d'un Dynamiquement Ajouté Contrôle

var reset = DataContext as ICompanies; 
    if (reset != null) 
    { 

    // ToDo: Create interface to populate the mymenutems 
    var mymenuitems = new List<string>(); 
    foreach (var item in mymenuitems) 
    { 
     var newbutton = new Button { Margin = new Thickness(2), Content = item }; 
     MenuItem_Company.Items.Add(newbutton); 
    } 
    } 

Mon XAML ressemble à ceci:

<ribbon:RibbonApplicationMenu ToolTipTitle="Application Menu"> 
    <ribbon:RibbonApplicationMenuItem 
     Header="Company" 
     x:Name="MenuItem_Company" 
     ImageSource="Images\LargeIcon.png">      
    </ribbon:RibbonApplicationMenuItem> 
</ribbon:RibbonApplicationMenu> 

Comment puis-je lier mon nouveau bouton dans le code lorsque je l'ajoute au MenuItem_Company? J'en ai besoin pour me lier à une propriété dans mon datacontext.

Merci, Eroc

Répondre

1
var newbutton = new Button { Margin = new Thickness(2), Content = item }; 
Binding b = new Binding(); 
b.Source = reset; 
b.Path = new PropertyPath("SomePropertyOnDataContext"); 
newButton.SetBinding(Button.IsEnabledProperty, b); 

Varier hypothèses dans le code ... mais il devrait vous donner une idée où commencer ...

+0

apparemment, je ne reçois pas la PropertyPath correcte. J'ai créé une méthode appelée "DoSomething" et j'ai laissé tomber une boîte de message pour voir si elle est en train de se déclencher et qu'elle n'arrive jamais. Aucune suggestion? – ErocM

+0

Regardez dans votre fenêtre de sortie lorsque les composants de l'interface utilisateur se chargent, si le chemin de liaison est incorrect, il vous le dira ... ce qui devrait vous donner la raison. Vous essayez de vous lier à une méthode ... ou voulez-vous dire une propriété? –

+0

Désolé, j'ai mal tapé, la propriété. Ça a marché, ty! – ErocM

Questions connexes