C# WPF DataGrid 在删除了数据源中的一行,但是在UI界面用没有删除对应的行,怎么回事?如何改?

Tagt1=newTag();t1.TagName=tagname;t1.TagValue=tagvalue;tagsource.RemoveAt(0);TagInfo.... Tag t1 = new Tag();
t1.TagName = tagname;
t1.TagValue = tagvalue;
tagsource.RemoveAt(0);
TagInfo.ItemsSource = tagsource;
其中TagInfo是对应DataGrid的名称,Tag是自定义的类,tagsource是List<Tag>,现在的问题是我原来的tagsource删除了index为0的一行,但UI界面确没有?有哪位大神知道啊,帮下忙,小弟感激不尽。
展开
 我来答
bindream
2013-03-14
知道答主
回答量:11
采纳率:0%
帮助的人:8.5万
展开全部
这是由于你的数据源不是感知类型所造成的,这需要你手动刷新界面,但这样就放弃了WPF数据性绑定的优点。 你可把 tagsource 原来的类型List<Tag> 改变为 ObservableCollection<Tag> , 这样在你删除数据源中的一行时, ObservableCollection类型的数据源会自动通知UI控件数据源已经变更了。不用象jielizao110所说再重新绑定一下。
另 ObservableCollection 定义在System.Collections.ObjectModel中,使用它时不要忘记在程序中
加上 using System.Collections.ObjectModel;
你如果写WPF架构的程序,建议你学习一下MVVM模式,并了解一下MvvmLight
Mickal小米
2013-03-14 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1779万
展开全部
  众所周知,wpf的数据绑定成员分为三块:绑定源(source),绑定目标(target),绑定本身(binding)。你数据源发生变更前台显示却依然没变,说明后台变化没有“通知”到前台。即数据源本身没实现INotifyPropertyChanged接口。最简单的方法就是将你绑定的List<Tag>改成 ObservableCollection<Tag>就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jielizao110
2013-03-13
知道答主
回答量:3
采纳率:0%
帮助的人:4527
展开全部
删除后,再从新绑定一下,Databind()好像这个函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式