Yes, but when working with A-Z, any user would expect the properties to be ordered from A-Z, and not just appear as they are not, but without the groups header (Look on how visual studio implements its property grid).
Anyway, since you are not giving me a solution, then I had to look for one myself. It involves changing the source code, but since I already must recompile the source code since your License agreement enforces me to do so (Protecting your assembly by uncommenting some code in the assembly protection). It is just a headache to maintain the changes (and some fixes) when a new Rad Controls version is released.
If anyone is interested in a solution, then find a converter named: FlatItemSourceConverter
Then change its code to:
public
class
FlatItemSourceConverter : IValueConverter
{
/// <summary>
/// Sifts out the root properties.
/// </summary>
public
object
Convert(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
var currentIEnumerable = value
as
IEnumerable<PropertyDefinition>;
if
(currentIEnumerable !=
null
&& currentIEnumerable.IsNotEmpty())
{
if
(currentIEnumerable.ElementAt(0).ParentPropertyGrid !=
null
&& currentIEnumerable.ElementAt(0).ParentPropertyGrid.IsGrouped)
{
var res = currentIEnumerable.AsQueryable<PropertyDefinition>()
.Where(
new
FilterDescriptorCollection() {
new
FilterDescriptor() { Member =
"IsFiltered"
, Operator = FilterOperator.IsEqualTo, Value =
true
} })
.Sort(
new
SortDescriptorCollection() {
new
SortDescriptor() { Member =
"OrderIndex"
},
new
SortDescriptor() { Member =
"DisplayName"
} });
return
res;
}
else
{
var res = currentIEnumerable.AsQueryable<PropertyDefinition>()
.Where(
new
FilterDescriptorCollection() {
new
FilterDescriptor() { Member =
"IsFiltered"
, Operator = FilterOperator.IsEqualTo, Value =
true
} })
.Sort(
new
SortDescriptorCollection() {
new
SortDescriptor() { Member =
"DisplayName"
} });
return
res;
}
}
return
value;
}
/// <summary>
/// Not used.
/// </summary>
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
throw
new
NotImplementedException();
}
private
static
IFilterDescriptor SearchFilterDescriptor {
get
;
set
; }
}
By this way, the properties are ordered alphabetically when the properties are not grouped, and by OrderIndex and then alphabetically (if few properties share the same OrderIndex) if grouped.
And as a remark, the thread that you've mentioned is called "How to disable alphabetical sort in the grouped view", and not "How to disable alphabetical soft". People were specifically asking to disable the alphabetical sorting, and giving controlled order in the grouped view only.