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

时间:2014-12-03 12:26:28

标签: c# .net wpf binding

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

XAML:

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

查看-MODEL:

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的属性(set)不会触发,并且GUI不会显示字符串测试。

1 个答案:

答案 0 :(得分:1)

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