如何将列表绑定到 ItemsControl 中的文本框

本文关键字:文本 ItemsControl 列表 绑定 | 更新日期: 2023-09-27 18:32:53

我想将一些字符串添加到列表中(通过按钮)并将其显示在ItemsSource中,但它不起作用。这是我的代码:

XAML:

<ItemsControl  ItemsSource="{Binding ListInfos, Mode=OneWay}">
<ItemsControl.ItemTemplate>
    <DataTemplate>
        <Grid>
            <TextBox Text="{Binding Path=., Mode=OneWay}" />
            ...

视图模型:

private List<String> _listInfos = new List<String>();
public List<String> ListInfos
{
    get { return _listInfos; }
    set
    {
        _listInfos = value;
        NotifyPropertyChanged("ListInfos");
    }
}
public void AddStringButton()
{
    ListInfos.Add("test");
}

AddStringButton 方法有效,但 ListInfos 的属性(集)不会触发,并且 die GUI 不会显示字符串测试。

如何将列表绑定到 ItemsControl 中的文本框

正如 dkozl 所说,您需要使用 ObservableCollection 类,该类在列表内容更改时提供通知。触发 List PropertyChanged 事件的唯一方法是将其设置为新的列表实例。