2017-09-15 4 views
0

J'ai créé un usercontrol (nommé UCDataGrid) que je veux ajouter à ma fenêtre principale lors de l'exécution.WPF C# comment ajouter dynamiquement un contrôle utilisateur à un panel enfants/bulles de UC à Panel

En MainWindow.xaml.cs:

private void GetAnotherUserControl(string sUCName) 
{ 
    var UC_Grid = new UCDataGrid(); 

    ... 

    // Add to 'PositioningGrid' Grid Layout 
    PositioningGrid.Children.Add(UC_Grid); 

    // Register UC_Grid Name 
    PositioningGrid.RegisterName(sUCName, UC_Grid); 

    ... 
} 

En MainWindow.xaml [Structure]:

Grid (named “TopGrid”) -> Grid (named “PostioningGrid”) 

Le PositioningGrid tiendra les contrôles des enfants/contrôles utilisateur que je développe ce qui est dynamiquement ajouté à l'exécution en fonction des règles métier. En ajoutant mon contrôle utilisateur de cette façon, comment puis-je faire barbotage/tunnellisation lorsque je clique sur une case à cocher dans mon contrôle utilisateur dynamiquement ajouté?

Je veux cliquer sur la case à cocher dans mon usercontrol (UCDataGrid) et exécuter le code de ma MainWindow.

J'ai essayé plusieurs façons, mais j'aimerais savoir s'il existe un moyen d'aviser ma MainWindow que l'utilisateur a cliqué sur la case à cocher.

Répondre

0

Manipulez le CheckBox.Checked événement routé dans la fenêtre:

<Window x:Class="WpfApplication1.Window1" 
     ... 
     Title="Window7" Height="300" Width="300" CheckBox.Checked="Window_Checked"> 

Ou:

this.AddHandler(CheckBox.CheckedEvent, new RoutedEventHandler(Window_Checked)); 

L'événement Checked va bouillonner de la CheckBox à la fenêtre parent.