如何将列表绑定到 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 不会显示字符串测试。
正如 dkozl 所说,您需要使用 ObservableCollection 类,该类在列表内容更改时提供通知。触发 List PropertyChanged 事件的唯一方法是将其设置为新的列表实例。