针对ObservableCollection.Clear()报错和clearcaseobjectnotfound这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展.net–Observable
针对ObservableCollection.Clear()报错和clearcase object not found这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展.net – Observable Collections Collection已更改、.net 中的 ObservableCollection 有什么用?、C# ObservableCollection两个字段排序的情况、C# ObservableCollection集合排序等相关知识,希望可以帮助到你。
本文目录一览:- ObservableCollection.Clear()报错(clearcase object not found)
- .net – Observable Collections Collection已更改
- .net 中的 ObservableCollection 有什么用?
- C# ObservableCollection两个字段排序的情况
- C# ObservableCollection集合排序
ObservableCollection.Clear()报错(clearcase object not found)
cmbGroup.Items.Clear();
doesn't work.
Haven't tried the other solutions because the problem was another.
Anytime the selection of cmbGroup
changes,an event is fired causing an update to another comboBox.
The other comboBox then reads out the selected items of cmbGroup
and applies some data of the selected item to itself. But if the selected item == null then nothing can be read out. That was the NullReferenceException :( Anyway thank you for your help!
.net – Observable Collections Collection已更改
ObservabelCollection<Person> personcollection... and if I change a property like: Person p = personcollection.where(e => e.FirstName == "Joey").FirstOrDefault(); if (p != null) { p.FirstName = "Joe"; }
我希望在UI中发生一些事情,但没有任何改变.
任何帮助将不胜感激.
大卫
解决方法
它并不关心它的集合中某个对象的属性是否发生变化.您需要在这些对象的属性上实现INotifyPropertyChanged接口以触发对UI的更改.
我读了here,给了我一些有用的见解.虽然它针对WPF,但大多数仍然适用,因为Silverlight本质上是WPF的一个子集.
以及这篇MSDN文章,其中指出:
In particular,if you are using OneWay or TwoWay (for example,you want your UI to update when the source properties change dynamically),you must implement a suitable property changed notification mechanism such as the INotifyPropertyChanged interface.
.net 中的 ObservableCollection 有什么用?
.net 中的 ObservableCollection 有什么用?
答案1
小编典典ObservableCollection 是一个集合,它允许集合外部的代码知道何时对集合进行更改(添加、移动、删除)。它在 WPF 和
Silverlight
中被大量使用,但它的使用不仅限于此。代码可以添加事件处理程序以查看集合何时发生更改,然后通过事件处理程序做出反应以进行一些额外的处理。这可能是更改 UI
或执行一些其他操作。
下面的代码实际上并没有做任何事情,而是演示了如何在类中附加处理程序,然后使用事件参数以某种方式对更改做出反应。WPF 已经有许多操作,例如刷新内置的
UI,因此您可以在使用 ObservableCollections 时免费获得它们
class Handler{ private ObservableCollection<string> collection; public Handler() { collection = new ObservableCollection<string>(); collection.CollectionChanged += HandleChange; } private void HandleChange(object sender, NotifyCollectionChangedEventArgs e) { foreach (var x in e.NewItems) { // do something } foreach (var y in e.OldItems) { //do something } if (e.Action == NotifyCollectionChangedAction.Move) { //do something } }}
C# ObservableCollection两个字段排序的情况
相对于System.Linq的OrderBy及OrderByDescending方法,调用后产生IOrderedEnumberable对象,这个对象为排序后的返回值,但原对象未发生变化。
试想,有这种需求,ObservableCollection调用排序方法后,此对象也跟着排序,怎么做呢?只能自己写个扩展方法了,方法内使用的冒泡排序算法,非常简单,当然使用是更简单、方便了。
注意:将方法写为扩展方法更方便:
class Student
{
int id;
string name;
}
ObservableCollection listDatas=new ObservableCollection<Student>();
listData .Add(new Student(){id=2,name="xiaoming"};
listData.Add(new Student(){id=1,name="李华"};
listData.Add(new Student(){id=3,name="张度"};
listDatas.OrderBy(cu=>cu.id,true);//按ID升序排序
listDatas.OrderBy(cu=>cu.id,false);//按ID降序排序
listDatas.OrderBy(cu=>cu.name,false);//按名称升序排序
listDatas..ThenBy(x => x.name)//按名称升序排序 (只有ID相同的情况下,按name升序排序)
C# ObservableCollection集合排序
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BYH371256/article/details/83346807
注意:ObservableCollection集合 直接使用OrderBy 等函数排序,有问题的,排序不改变,可以转成List在进行排序
命名空间:System.Collections.ObjectModle
在WPF中,绑定列表List,数据更新后不会通知界面更新,要使用ObservableCollection集合,当数据发生改变就通知界面改变;
解决方法一:List列表转为ObservableCollection集合
private ObservableCollection<BaseSignalViewModel> children = new ObservableCollection<BaseSignalViewModel>();
public ObservableCollection<BaseSignalViewModel> Children
{
get { return children; }
set
{
children = value;
NotifyOfPropertyChange(() => Children);
}
}
List<BaseSignalViewModel> listChild = CurrentSignal.Children.ToList();
listChild.Sort(delegate(BaseSignalViewModel p1, BaseSignalViewModel p2) { return Comparer<string>.Default.Compare(p1.Index.ToString(), p2.Index.ToString()); });
//List列表转为ObservableCollection集合
CurrentSignal.Children = new ObservableCollection<BaseSignalViewModel>(listChild);
---------------------
作者:Kaivin.bao
来源:CSDN
原文:https://blog.csdn.net/byh371256/article/details/83346807
版权声明:本文为博主原创文章,转载请附上博文链接!
今天关于ObservableCollection.Clear()报错和clearcase object not found的讲解已经结束,谢谢您的阅读,如果想了解更多关于.net – Observable Collections Collection已更改、.net 中的 ObservableCollection 有什么用?、C# ObservableCollection两个字段排序的情况、C# ObservableCollection集合排序的相关知识,请在本站搜索。
本文标签: