问题描述
最近在学习WPF,做了界面,不知道怎么发图。。。。我只能把基本界面内容描述一下:在一个页面Page上,添加一个DataGrid控件,用来显示文件名、文件大小、文件路径另外有3个Button命令,选择文件、删除文件、发送。点击选择文件,会弹出文件浏览选择框,选择要发送的文件删除文件,删除Datagrid中的一条记录发送,发送文件到目的地。代码如下:publicpartialclassFileSendPage:Page{staticstringsendname;List<FileCommon>FileList=newList<FileCommon>();//用来绑定到Datagrid上的数据源publicFileSendPage(){InitializeComponent();}//选择文件privatevoidbtnAdd_Click(objectsender,RoutedEventArgse){FileCommonfc=newFileCommon();//文件类:包括文件名、文件类型、文件大小、文件路径4个字段fc=DataService.SelectFile();//该方法实现选择文件,并将文件的信息放入fc中if(fc.TextName!=""){FileList.Add(fc);BindToDG();}}//删除选中文件privatevoidbtnDelete_Click(objectsender,RoutedEventArgse){FileCommonfc=newFileCommon();fc=dgFile.SelectedItemasFileCommon;dgFile.SelectedItems.Clear();}//绑定DataGrid的数据源voidBindToDG(){if(FileList.Count!=0){dgFile.ItemsSource=FileList;}}}
程序运行后,第一次点击选中文件后,选中的文件显示在DataGrid中了,再次点击选中文件,DataGrid没有任何变化,还是只有第一次的文件记录。我设断点调试,FileList中明明已经有两条,但是DataGrid只显示一条。单击删除文件,也没有反应。。。请各位帮我看一下是什么原因,谢谢!
解决方案
解决方案二:
List没有实现INotifyCollectionChanged接口,绑定集合一般用System.Collections.ObjectModel.ObservableCollection<T>
解决方案三:
引用1楼的回复:
List没有实现INotifyCollectionChanged接口,绑定集合一般用System.Collections.ObjectModel.ObservableCollection<T>
我其他的地方也是直接用的list,可是没有出现问题。。。。