1

我必须制作带有文本框的列表框......而且它必须是动态的。我在后面的代码中有可观察的集合,我想为列表框绑定它。我想要动态列表框,这个列表应该有可编辑的文本框。所以,基本上我想从列表框中绑定 multiplr 文本框。任何帮助,将不胜感激

<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>

通过这样做,我的文本框数量与可观察集合中的项目相同,但未设置文本框的文本。

4

2 回答 2

8

如果您的项目ObservableCollection只是普通string的,那么您可以像这样将数据绑定到整个字符串值:

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

从 MSDN 上的Binding.Path属性页面:

(可选)句点 (.) 路径可用于绑定到当前源。例如,Text="{Binding}"等价于Text="{Binding Path=.}"

请注意,如果您在集合中有一些具有属性的对象,那么@nit 的答案将是正确的,因为您需要引用相关的属性名称:

<ListBox Name="ListTwo" ItemsSource="{Binding Source=obs}" ... >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Name="TextBoxList" Text="{Binding PropertyName}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
于 2014-06-03T15:05:54.117 回答
1

您必须将您的文本框绑定到您已绑定的可观察集合的类中的属性

<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>
于 2014-06-03T14:38:29.127 回答