将ObservableCollection绑定到模板化ListBox

时间:2013-04-22 04:19:12

标签: wpf templates data-binding listbox observablecollection

我有这个集合

ObservableCollection<string> Urls { get; set; }

在我的数据上下文类中。我在列表框中绑定了它:

<ListBox ItemsSource="{Binding Urls}">

    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Text="{Binding .}" />
        </DataTemplate>
    </ListBox.ItemTemplate>

</ListBox>

数据显示在列表框中,两个相应的 - 未显示 - 此处按钮以及命令“添加”和“删除”也可以工作,但是,更改TextBox不会影响集合的内容。

我在绑定中尝试了Mode=TwoWay,但我认为它已经打开了。我已经尝试了一些其他选项,如Validate = OnPropertyChange,但是,仍然没有任何更新。

如何使TextBox中模板化项目中的ListBox实际更新datacontext类的Urls属性?

1 个答案:

答案 0 :(得分:6)

你无法修改字符串;使用带有一个字符串属性的包装类,然后将TextBox绑定到所述属性。这样,属性中的字符串可以用编辑过的字符串替换。