Upon further information (see comments on answer above), a requirement is to keep the "set" sorted by a element's property after the property is edited.
In this case, you might take a look at BindableLinq (there are other similar frameworks too) and use the OrderBy statement implemented in there.
KeyedCollection<string, CustomNode> collection = /* from whereever */
collection.Items.AsBindable().OrderBy(c => c.PropertyOnCustomNode);
As long as your edited property raises a PropertyChanged event then it'll apply the re-ordering immediately. If you wish to change your collection, then ensure that the source collection implements INotifyCollectionChanged.