Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 649941
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T21:59:56+00:00 2026-05-13T21:59:56+00:00

I have found out that I am doing WPF wrong and frustratingly must overhaul

  • 0

I have found out that I am “doing WPF wrong” and frustratingly must overhaul alot of my code.

How could I convert the following:

public static class SortName 
    {
       public static  int Compare(Person a, Person b)
        {
            return a.Name.CompareTo(b.Name);
        }

    }

and I call it like:

list.Sort(SortName.Compare);

to the format required for ObservableCollection. And how would I call it. So far i’ve tried this following based on what I read here

class ObservableCollectionSortName<T> : ObservableCollection<T> 
{
    public int Compare (Person a, Person b)
    {
        return a.Name.CompareTo(b.Name);
    }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T21:59:56+00:00Added an answer on May 13, 2026 at 9:59 pm

    The observable collection doesn’t implement sorting, for the simple reason that every time an item moves from one location in the list to another the collection raises an event. That would be great for watching animations of the sort algorithm in action, but it would sort of suck for, you know, sorting.

    There are two ways to do this; they’re very similar, and both start by sorting the items outside their observable collection, e.g. if _Fruits is an ObservableCollection<Fruit>, and you’ve defined an IComparer<Fruit> for the sort, you’d do:

    var sorted = _Fruits.OrderBy(x => x, new FruitComparer());
    

    That creates a new IEnumerable<Fruit> that, when you iterate over it, will have the objects in the new order. There are two things you can do with this.

    One is to create a new collection, replace the old one, and force any items control(s) in the UI to rebind to it:

    _Fruits = new ObservableCollection<Fruit>(sorted);
    OnPropertyChanged("Fruits");
    

    (This assumes that your class implements INotifyPropertyChanged in the usual way.)

    The other is to create a new sorted list, and then use it to move the items in your collection:

    int i = 0;
    foreach (Fruit f in sorted)
    {
       _Fruits.MoveItem(_Fruits.IndexOf(f), i);
       i++;
    }
    

    The second approach is something I’d only try if I had a really serious commitment to not rebinding the items controls, because it’s going to raise a ton of collection-changed events.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have been doing some reading and have found out that the Java Swing
I have been doing some unsafe bitmap operations and have found out that increasing
I have recently found out that there exists a method called nth_element in the
I have recently found out that no argument constructor and multiple argument constructor cannnot
I found out that in order to open a Gmail compose screen you'd have
Just have read sass changelog and found out that FSSM (the gem that had
I have an interview tomorrow morning and just found out that I will also
I'm doing some fairly simple cross-platform TCP socket programming. I have unfortunately found out
I have found plenty of information out there about this error: 'ERROR: Could not
I've searched and found out that a lot of people have the same problem,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.