Question

Je dois créer une listbox avec une zone de texte dedans...et cela doit être dynamique.J'ai une collection observable dans le code derrière et je souhaite la lier à la listbox.Je veux une zone de liste dynamique et cette liste doit contenir une zone de texte modifiable.Donc, fondamentalement, je veux lier une zone de texte multiplr à partir d’une zone de liste.Toute aide serait appréciée

<ListBox HorizontalAlignment="Left" Name="ListTwo" Height="100" Margin="286.769,165.499,0,0" VerticalAlignment="Top" Width="100" ItemsSource="{Binding Source=obs}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Name="TextBoxList"></TextBox>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

En faisant cela, j'ai le même nombre de zones de texte que les éléments de la collection observable, mais le texte de la zone de texte n'est pas configuré.

Était-ce utile?

La solution

Vous devrez lier votre zone de texte à la propriété de votre classe de laquelle la collecte observable que vous avez liée

<ListBox HorizontalAlignment="Left" Name="ListTwo" Height="100" Margin="286.769,165.499,0,0" VerticalAlignment="Top" Width="100" ItemsSource="{Binding Source=obs}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Binding="{Binding PROPERTYINCLASS}"></TextBox>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Autres conseils

Si les éléments de votre ObservableCollection sont tout simplement strings, vous pouvez alors lier les données à la valeur de chaîne entière comme ceci :

<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Name="TextBoxList" Text="{Binding}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Du Binding.Path Propriété page sur MSDN :

En option, un chemin point (.) peut être utilisé pour établir une liaison avec la source actuelle.Par exemple, Text="{Binding}" est équivalent à Text="{Binding Path=.}".

Notez que si vous aviez des objets avec des propriétés dans la collection, alors la réponse de @nit aurait été correcte car vous auriez besoin de référencer le nom de la propriété pertinente :

<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Name="TextBoxList" Text="{Binding PropertyName}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top