Skip to content

Commit eec6d06

Browse files
committed
Skip rendering unknown feature form element types
1 parent 70c7d14 commit eec6d06

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/Toolkit/Toolkit/UI/Controls/FeatureForm/FeatureFormElementTemplateSelector.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ internal class FeatureFormElementTemplateSelector : DataTemplateSelector
2727
private static DataTemplate DefaultFieldFormElementTemplate;
2828
private static DataTemplate DefaultGroupElementTemplate;
2929
private static DataTemplate DefaultTextFormElementTemplate;
30+
private static DataTemplate UnsupportedFormElementTemplate;
3031

3132
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.FeatureForms.FormElement.IsVisible), "Esri.ArcGISRuntime.Mapping.FeatureForms.FormElement", "Esri.ArcGISRuntime")]
3233
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.FeatureForms.FormElement.Label), "Esri.ArcGISRuntime.Mapping.FeatureForms.FormElement", "Esri.ArcGISRuntime")]
@@ -53,6 +54,10 @@ static FeatureFormElementTemplateSelector()
5354
view.SetBinding(TextFormElementView.ElementProperty, Binding.SelfPath);
5455
return view;
5556
});
57+
UnsupportedFormElementTemplate = new DataTemplate(() =>
58+
{
59+
return new Grid() { IsVisible = false };
60+
});
5661
}
5762

5863
public FeatureFormElementTemplateSelector()
@@ -70,7 +75,7 @@ public FeatureFormElementTemplateSelector()
7075

7176
protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
7277
{
73-
if(item is FieldFormElement)
78+
if (item is FieldFormElement)
7479
{
7580
return FieldFormElementTemplate;
7681
}
@@ -82,7 +87,7 @@ protected override DataTemplate OnSelectTemplate(object item, BindableObject con
8287
{
8388
return TextFormElementTemplate;
8489
}
85-
return null!;
90+
return UnsupportedFormElementTemplate; // Renders empty / skips
8691
}
8792
}
8893
}

src/Toolkit/Toolkit/UI/Controls/FeatureForm/FormElementItemsControl.Windows.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ namespace Esri.ArcGISRuntime.Toolkit.Primitives
2626
/// </summary>
2727
public partial class FormElementItemsControl : ItemsControl
2828
{
29+
private static DataTemplate UnsupportedFormElementTemplate = new DataTemplate();
30+
2931
/// <inheritdoc />
3032
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
3133
{
@@ -36,14 +38,18 @@ protected override void PrepareContainerForItemOverride(DependencyObject element
3638
{
3739
presenter.ContentTemplate = FieldFormElementTemplate;
3840
}
39-
if (item is TextFormElement)
41+
else if (item is TextFormElement)
4042
{
4143
presenter.ContentTemplate = TextFormElementTemplate;
4244
}
4345
else if (item is GroupFormElement)
4446
{
4547
presenter.ContentTemplate = GroupFormElementTemplate;
4648
}
49+
else
50+
{
51+
presenter.ContentTemplate = UnsupportedFormElementTemplate; // Renders empty / skips
52+
}
4753
}
4854
}
4955

0 commit comments

Comments
 (0)