2009-06-17 6 views
0

J'ai placé dans mon MainWindow un StackPanel, qui devient dynamiquement sur les nouveaux UserControls d'exécution (le UserControl est une rangée de TextBoxes et un bouton nommé "Delete"). Ce est sur la façon dont je crée les UserControls:Laissez WPF UserControl supprimer lui-même et Data-Object qui lui est lié?

PersonObject p = new PersonObject; 
List.Add(p); 

UserControlLine usrCtrlLine = new UserControlLine(); 
usrCtrlLine.DataContext = p; 

StackPanel.Children.Add(usrCtrlLine); 

Maintenant, le UserControl contient comme celui-ci: Encadrés
TextBox TextWrapping = "Wrap" Grid.Column = "1" Text = "{Binding Path = Prénom, mode = TwoWay} »

Mes questions sont, comment puis-je laisser le UserControl
- Retirer lui-même de la StackPanel ("obtenir supprimé")
- Supprimer le PersonObject p qui est lié à elle?

Merci beaucoup!

Répondre

0

Je ne suis pas sûr de comprendre ce que vous essayez de faire ici ... Vous voulez afficher une liste de personnes dans le StackPanel? Vous devez utiliser un ItemsControl, définir ses ItemsPanel comme StackPanel, et son ItemTemplate comme UserControlLine:

<ItemsControl ItemsSource="{Binding ListOfPersons}"> 
    <ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel IsItemsHost="True"/> 
    </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <my:UserControlLine/> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Pour supprimer un élément, vous supprimez simplement de la collection de personnes, et le UserControlLine associés seront également supprimés à partir de ItemsControl (la collection devrait être une ObservableCollection)

+0

Merci pour cette entrée! J'ai parcouru un peu plus avec vos mots-clés et trouvé de bons exemples ici: http://www.galasoft.ch/mydotnet/articles/article-2007041201.aspx –

Questions connexes