La liaison à l'intérieur de listbox itemtemplate problèmes

J'ai deux problèmes de liaison avec les listes avec un itemtemplate qui contient une texbox.

1) Une zone de liste se lie à une liste de chaînes de caractères. Comment puis-je afficher chaque chaîne à l'intérieur de zones de texte créées et permettent une liaison bidirectionnelle en même temps? Une liaison bidirectionnelle n'est pas autorisée sans spécifier un Chemin d'accès ou XPath.

<ListBox Height="231" HorizontalAlignment="Left" Margin="0,167,0,0" Name="listBoxKeys" VerticalAlignment="Top" Width="219" ItemsSource="{Binding Path=SelectedPlatform.Keys}" SelectedItem="{Binding Path=SelectedKey,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
         <ListBox.ItemTemplate>
              <DataTemplate>
                  <StackPanel Orientation="Horizontal" Margin="0,0,0,0">
                     <TextBox Text="{Binding Mode=OneWay}" Margin="0,0,0,0" Height="Auto" MinWidth="80" MaxWidth="80" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                   </StackPanel>
               </DataTemplate>
          </ListBox.ItemTemplate>
 </ListBox>

Et 2) j'utilise une autre zone de liste qui se lie à certains de liste générique d'une coutume KeyValuePair classe. L'itemtemplate contient un textbox et combobox. La zone de texte le texte est lié à la propriété de la clé de chaque objet KeyValuePair et de la zone de liste déroulante selecteditem à la valeur de la propriété. Mon problème est que je veux la liste déroulante pour obtenir rempli par une liste de chaînes déclarées dans mon viewmodel qui sera en train de changer au moment de l'exécution. Du datacontext de la fenêtre est le viewmodel où la liste est déclarée. Je ne connais pas la syntaxe exacte que je dois utiliser pour lier la zone de liste déroulante itemssource. Voici mon code :

<ListBox Height="393" HorizontalAlignment="Left" Margin="0,72,0,0" Name="listBoxActions" VerticalAlignment="Top" Width="254" ItemsSource="{Binding Path=SelectedPlayer.ControlProfile.MappedActions}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
<TextBox Text="{Binding Key, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Margin="10,0,0,0" Height="Auto" MinWidth="80" MaxWidth="80" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<ComboBox Margin="10,0,0,0" Height="Auto" MinWidth="80" MaxWidth="80" HorizontalAlignment="Left" VerticalAlignment="Center" ItemsSource="{Binding ?}" SelectedItem="{Binding Value, Mode=TwoWay}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Ce ne devrait vraiment avoir été deux questions distinctes que vous allez trouver certaines personnes peuvent répondre à l'un et pas l'autre, alors vous pourriez obtenir deux personnes en plus de répondre correctement. Cela va rendre difficile la marque de la réponse comme correcte.

OriginalL'auteur muku | 2011-02-03