[Core] null/empty categories go on the bottom

This commit is contained in:
Eric Maupin 2017-12-08 14:53:47 -05:00
Родитель 78d9d43477
Коммит a577f71a39
3 изменённых файлов: 23 добавлений и 2 удалений

Просмотреть файл

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
namespace Xamarin.PropertyEditing
{
internal class CategoryComparer
: IComparer<string>
{
public static readonly CategoryComparer Instance = new CategoryComparer();
public int Compare (string x, string y)
{
int result = Comparer<string>.Default.Compare (x, y);
if (result != 0 && (String.IsNullOrEmpty (x) || String.IsNullOrEmpty (y)))
result *= -1;
return result;
}
}
}

Просмотреть файл

@ -96,7 +96,7 @@ namespace Xamarin.PropertyEditing.ViewModels
Dictionary<string, List<PropertyViewModel>> groupedTypeProperties = null;
this.arranged.Clear ();
foreach (var grouping in props.GroupBy (GetGroup).OrderBy (g => g.Key)) {
foreach (var grouping in props.GroupBy (GetGroup).OrderBy (g => g.Key, CategoryComparer.Instance)) {
HashSet<EditorViewModel> remainingItems = null;
if (ArrangeMode == PropertyArrangeMode.Category) {
@ -126,7 +126,7 @@ namespace Xamarin.PropertyEditing.ViewModels
if (groupedTypeProperties != null) { // Insert type-grouped properties back in sorted.
int i = 0;
foreach (var kvp in groupedTypeProperties.OrderBy (kvp => kvp.Key)) {
foreach (var kvp in groupedTypeProperties.OrderBy (kvp => kvp.Key, CategoryComparer.Instance)) {
var group = new ObservableGrouping<string, EditorViewModel> (kvp.Key) {
new PropertyGroupViewModel (kvp.Key, kvp.Value, ObjectEditors)
};

Просмотреть файл

@ -43,6 +43,7 @@
<Compile Include="AsyncWorkQueue.cs" />
<Compile Include="BidirectionalDictionary.cs" />
<Compile Include="BrushPropertyInfo.cs" />
<Compile Include="CategoryComparer.cs" />
<Compile Include="Drawing\CommonAlignment.cs" />
<Compile Include="Drawing\CommonBrush.cs" />
<Compile Include="Drawing\CommonBrushMappingMode.cs" />