Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to convert an observable collection to regular collection?

I've got a test collection setup as :

ObservableCollection<Person> MyselectedPeople = new ObservableCollection<Person>();

public MainWindow()
    {
       InitializeComponent();
       FillData();
    }

public void FillData()
    {
        Person p1 = new Person();
        p1.NameFirst = "John";
        p1.NameLast = "Doe";
        p1.Address = "123 Main Street";
        p1.City = "Wilmington";
        p1.DOBTimeStamp = DateTime.Parse("04/12/1968").Date;
        p1.EyeColor = "Blue";
        p1.Height = "601";
        p1.HairColor = "BRN";

        MyselectedPeople.Add(p1);
    }

Once I have this collection built I would like to be able to convert the Observable Collection to the type List.

The reason behind this is my main project is receiving a generic list with data I have to convert it to an Observable collection for use in gridview, listboxes etc. Data is selected within the UI and then sent back to the originating assembly for further usage.

like image 342
rlcrews Avatar asked Jul 02 '10 17:07

rlcrews


4 Answers

I think the quickest way to do this is with LINQ.

 List<Person> personList= MySelectedPeople.ToList(); 

Cheers.

like image 113
Dave White Avatar answered Nov 01 '22 10:11

Dave White


Try the following

var list = MyselectedPeople.ToList();

Make sure you have System.Linq as one of your using statements.

like image 23
JaredPar Avatar answered Nov 01 '22 10:11

JaredPar


This should do it...

List<Person> myList = MyselectedPeople.ToList<Person>();
like image 7
shookdiesel Avatar answered Nov 01 '22 10:11

shookdiesel


I just want to point out that aside from the obvious Linq extension method, List has always had an overload that takes an IEnumerable<T>

return new List<Person>(MyselectedPeople);
like image 5
BFree Avatar answered Nov 01 '22 08:11

BFree