J'ai un Listbox
avec un UserControl
comme DataTemplate
. Ce UserControl
a un Button
pour supprimer cet élément de la liste.Liaison de commandes dans UserControl utilisée comme ListBox.ItemTemplate
<ListBox x:Name="FileList" ItemsSource="{Binding Files}" >
<ListBox.ItemTemplate>
<DataTemplate>
<Views:FileItem/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Le ItemsSource
est défini comme:
ObservableCollection<FileViewModel> m_fileViews = new ObservableCollection<FileViewModel>();
Voici le UserControl
simplifié:
<UserControl x:Class="Views.FileItem">
<Canvas x:Name="LayoutRoot">
<TextBlock x:Name="FileName" Text="{Binding FileName}" />
<Button Content="Remove"/>
</Canvas>
</UserControl>
Lorsque l'utilisateur clique sur le bouton Remove
, il doit retirer ce point de l'ObservableCollection
.
Le problème est que le DataContext
pour chaque ListBoxItem
est un ViewModel différent du ViewModel qui contient le ObservableCollection
.
Je ne sais pas comment lier le bouton Remove
à un ICommand
dans le ViewModel "parent". Toute aide serait appréciée. Merci beaucoup.
Merci. Cela a beaucoup aidé. Je m'inquiétais d'un ou deux autres scénarios auxquels je devais faire face en cours de développement, et le modèle Mediator les a tous résolus. – mfanto