Vincular lista de caixas de texto dentro da caixa de listagem no wpf
-
21-12-2019 - |
Pergunta
Eu tenho que fazer uma caixa de listagem com caixa de texto ...e tem que ser dinâmico.Eu tenho uma coleção observável no código por trás e quero vinculá-la à caixa de listagem.Quero uma caixa de listagem dinâmica e esta lista deve conter uma caixa de texto editável.Então, basicamente eu quero vincular a caixa de texto multiplr da caixa de listagem.Qualquer ajuda seria apreciada
<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>
Ao fazer isso, tenho o mesmo número de caixas de texto que os itens da coleção observável, mas o texto da caixa de texto não está configurado.
Solução
Você terá que vincular sua caixa de texto à propriedade em sua classe da coleção observável que você vinculou
<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>
Outras dicas
Se os itens em seu ObservableCollection
são simplesmente simples string
s, então você pode vincular dados a todo o valor da string assim:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
De Binding.Path
Propriedade página no MSDN:
Opcionalmente, um caminho de ponto final (.) pode ser usado para vincular à fonte atual.Por exemplo,
Text="{Binding}"
é equivalente aText="{Binding Path=.}"
.
Observe que se você tivesse alguns objetos com propriedades na coleção, a resposta do @nit estaria correta, pois você precisaria fazer referência ao nome da propriedade relevante:
<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Name="TextBoxList" Text="{Binding PropertyName}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>