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

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

通过这样做,我有许多textbox与observable集合中的项目相同,但textbox的文本没有设置。

有帮助吗?

解决方案

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

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

其他提示

如果您的 ObservableCollection 只是简单明了 strings,那么你可以像这样数据绑定到整个字符串值:

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

Binding.Path 物业 msdn上的页面:

可选地,一个周期(。)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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top