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.

Foi útil?

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 strings, 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 a Text="{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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top