Skip to content
This repository was archived by the owner on Sep 25, 2024. It is now read-only.

Commit 79ab73f

Browse files
authored
Merge pull request #506 from xamarin/ermau-control-arrangemodes
Allow control over displayed arrange modes
2 parents 21c98e4 + b08c453 commit 79ab73f

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

Xamarin.PropertyEditing/TargetPlatform.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,15 @@ public IReadOnlyCollection<string> AutoExpandGroups
111111
set;
112112
}
113113

114+
/// <summary>
115+
/// Gets or sets a list of the allowed arrange modes.
116+
/// </summary>
117+
public IReadOnlyList<PropertyArrangeMode> ArrangeModes
118+
{
119+
get;
120+
set;
121+
} = new[] { PropertyArrangeMode.Name, PropertyArrangeMode.Category };
122+
114123
/// <summary>
115124
/// Gets or sets a callback for errors that should be edge cases and/or don't have a defined way of displaying in the UI.
116125
/// </summary>
@@ -139,11 +148,14 @@ internal TargetPlatform WithProvider (IEditorProvider provider)
139148
return new TargetPlatform (provider) {
140149
ResourceProvider = ResourceProvider,
141150
BindingProvider = BindingProvider,
151+
IconProvider = IconProvider,
142152
SupportsMaterialDesign = SupportsMaterialDesign,
143153
SupportsCustomExpressions = SupportsCustomExpressions,
144154
SupportsBrushOpacity = SupportsBrushOpacity,
145155
GroupedTypes = GroupedTypes,
146-
AutoExpandGroups = AutoExpandGroups
156+
AutoExpandGroups = AutoExpandGroups,
157+
ArrangeModes = ArrangeModes,
158+
ErrorHandler = ErrorHandler
147159
};
148160
}
149161
}

Xamarin.PropertyEditing/ViewModels/PanelViewModel.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,18 @@ internal class PanelViewModel
115115
public PanelViewModel (TargetPlatform targetPlatform)
116116
: base (targetPlatform)
117117
{
118-
ArrangeModes = new List<ArrangeModeViewModel> {
119-
new ArrangeModeViewModel (PropertyArrangeMode.Name, this),
120-
new ArrangeModeViewModel (PropertyArrangeMode.Category, this)
121-
};
118+
if (targetPlatform == null)
119+
throw new ArgumentNullException (nameof(targetPlatform));
120+
121+
var modes = new List<ArrangeModeViewModel> ();
122+
if (targetPlatform.ArrangeModes == null || targetPlatform.ArrangeModes.Count == 0)
123+
modes.Add (new ArrangeModeViewModel (PropertyArrangeMode.Name, this));
124+
else {
125+
for (int i = 0; i < targetPlatform.ArrangeModes.Count; i++)
126+
modes.Add (new ArrangeModeViewModel (targetPlatform.ArrangeModes[i], this));
127+
}
128+
129+
ArrangeModes = modes;
122130
}
123131

124132
public event EventHandler ArrangedPropertiesChanged;

0 commit comments

Comments
 (0)