Tout à fait, donc j'ai, comme je l'ai dit, un ComboBox dans un ListBox. Ce sont les deux contrôles (projet WPF utilisant C# dans Visual Studio 2010 et MVVM).Combobox dans une zone de liste et un problème de liaison de données connexes
Je peux les créer tous bien et bien. Le ListBox contient un ObservableCollection de quelque chose appelé IntWrapper, qui contient juste et int.
ComboBox est chargé avec une ObservableCollection de quelque chose appelé MissionViewModel, qui est juste une classe qui contient quelques types de données de base. Par conséquent, ItemSource pour ListBox et ComboBox sont différents.
Je peux ajouter et éléments à la ListBox avec un bouton, qui ajoute juste un nouvel IntWrapper à ObservableCollection. Visuellement cela me donne un nouveau ComboBox, qui est peuplé.
Ce que je n'arrive pas à comprendre, c'est comment obtenir l'une des propriétés de MissionViewModel pour aller à la propriété dans IntWrapper quand je le sélectionne.
Auparavant, je viens d'utiliser une zone de texte dans la zone de liste, qui ressemblait à ceci:
<ListBox x:Name="lbMissionsToGive" ItemsSource="{Binding MissionsToGive}" SelectedItem="{Binding SelectedMissionToGive}" ContextMenu="{StaticResource RemoveMissionToGiveMenu}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="2" BorderBrush="LightBlue" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" CornerRadius="5,5,5,5">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="1">Mission ID: </TextBlock>
<TextBox Margin="1" Text="{Binding Int, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Mon (non travail) tentative par laquelle je remplace la zone de texte avec le ComboBox est la suivante:
<ListBox x:Name="lbMissionsToGive" ItemsSource="{Binding MissionsToGive}" SelectedItem="{Binding SelectedMissionToGive}" ContextMenu="{StaticResource RemoveMissionToGiveMenu}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="2" BorderBrush="LightBlue" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" CornerRadius="5,5,5,5">
<StackPanel Orientation="Horizontal">
<ComboBox DisplayMemberPath="MissionNameAndID" SelectedValuePath="Int" ItemsSource="{Binding MissionListViewModel.MissionVMs, Source={StaticResource Locator}}"></ComboBox>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
J'avais pensé que SelectedValuePath serait la chose que je voulais, mais cela ne semble pas fonctionner jusqu'à présent (peut-être que je ne l'utilise pas correctement).
Toute aide serait appréciée.