Permettez-moi d'abord de décrire mon objectif: J'ai créé un objet avec 3 propriétés: début, fin et heure. J'ai créé un ObservableCollection de 8 de ces propriétés, il ressemble à ceci:Liaison de la valeur d'affichage des propriétés d'une collection à une zone de liste déroulante
//C#
internal class MyObjects : ObservableCollection<MyObjectSetting>
{
public MyObjects()
: base()
{
Add(new MyObjectSetting(
start1,
end1,
time1);
Add(new MyObjectSetting(
start2,
end2,
time2);
(etc)
}
}
Je voudrais avoir 3 ComboBoxes qui se lient aux propriétés individuelles énumérées dans ces 8 objets, donc ComboBoxes ressembleraient « start1 , start2, ... start8 "," end1, end2, ... end8 ".
Le code suivant lie avec succès le contrôle ComboBox aux objets eux-mêmes, mais je suis bloqué quant à la façon d'accéder aux propriétés individuelles de chaque zone de liste déroulante.
// WPF
<Grid>
<Grid.Resources>
<local:MyObjects x:Key="myMyObjects"/>
</Grid.Resources>
<ComboBox x:Name="cbxStartPosition"
Grid.Row="0"
Grid.Column="3"
ItemsSource="{Binding Source={StaticResource myMyObjects}}"
>
</Grid>
quelqu'un peut me aider à déterminer comment lier les propriétés des objets stockés dans la collection à la valeur d'affichage représenté dans la zone de liste déroulante?
J'ai essayé d'ajouter un DataTemplate pour la ListBoxinvestigating l'échantillon MultiBinding sur MSDN here comme indiqué ci-dessous, mais recevoir une erreur ci-dessous:
//WPF
<DataTemplate x:Key="StartPositionTemplate">
<ListBox>
<MultiBinding Converter="{StaticResource myNameConverter}">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</ListBoxItem>
</DataTemplate>
Erreur 32 Une valeur de type « DataTemplate » ne peut pas être ajouté à une collection ou un dictionnaire de type 'UIElementCollection'.
Cette erreur a été déclenchée car je n'étais pas dans la section XAML. Les gens HTH dans le futur. L'utilisation d'un DataTemplate était la solution, selon la réponse ci-dessous.
Si DataTemplate n'est pas la voie à suivre, ce que quelqu'un sait ce qui serait une meilleure façon d'aborder ce sujet?
C'est * exactement * ce que je cherchais. Merci beaucoup - j'ai utilisé le deuxième scénario complexe, je vais creuser plus profondément dans ItemTemplates pour comprendre ce qui se passe pour les travaux futurs. Bon travail! – CrimsonX