public MainWindow()
{
InitializeComponent();
listView1.ItemsSource = myData; // myData is not ObservableCollection
}
private void AddData_ButtonClick(object sender, RoutedEventArgs e)
{
myData.Add(/*adding new item*/);
listView1.Items.Refresh();
}
和xml代码:
<ListView x:Name="listView1" ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}" Header="File Name"/>
<GridViewColumn DisplayMemberBinding="{Binding NumOfPoints}" Header="Points"/>
</GridView>
</ListView.View>
</ListView>
它运作良好,我只是想改善我的代码。例如删除Items.Refresh()方法并改善绑定。 我是wpf的新手,正在寻求最佳实践建议,而我暂时不加入mvvm。 任何建议将不胜感激。
答案 0 :(得分:0)
myData
必须是ObservableCollection<T>
或实现INotifyCollectionChanged
界面的任何其他类型,以便您能够查看ListView
中添加的项而不必显式重置或刷新其项目集合。这就是ObservableCollection<T>
类存在的原因。
因此,您必须将文件类型从List<SDRFile>
更改为ObservableCollection<SDRFile>
。