我想在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不会显示字符串测试。
答案 0 :(得分:1)
正如dkozl所说,你需要使用ObservableCollection类,它在列表内容发生变化时提供通知。 List PropertyChanged事件触发的唯一方法是将其设置为新的列表实例。