diff --git a/CommunityToolkit.App.Shared/Renderers/GeneratedSampleOptionsRenderer.xaml.cs b/CommunityToolkit.App.Shared/Renderers/GeneratedSampleOptionsRenderer.xaml.cs
index cfaa4fc7..1b00271d 100644
--- a/CommunityToolkit.App.Shared/Renderers/GeneratedSampleOptionsRenderer.xaml.cs
+++ b/CommunityToolkit.App.Shared/Renderers/GeneratedSampleOptionsRenderer.xaml.cs
@@ -30,14 +30,14 @@ public GeneratedSampleOptionsRenderer()
/// The backing for .
///
public static readonly DependencyProperty SampleOptionsProperty =
- DependencyProperty.Register(nameof(SampleOptions), typeof(IEnumerable), typeof(GeneratedSampleOptionsRenderer), new PropertyMetadata(null));
+ DependencyProperty.Register(nameof(SampleOptions), typeof(IGeneratedToolkitSampleOptionViewModel[]), typeof(GeneratedSampleOptionsRenderer), new PropertyMetadata(new List()));
///
/// The generated sample options that should be displayed to the user.
///
- public IEnumerable? SampleOptions
+ public IGeneratedToolkitSampleOptionViewModel[] SampleOptions
{
- get => (IEnumerable?)GetValue(SampleOptionsProperty);
+ get => (IGeneratedToolkitSampleOptionViewModel[])GetValue(SampleOptionsProperty);
set => SetValue(SampleOptionsProperty, value);
}
diff --git a/CommunityToolkit.App.Shared/Renderers/ToolkitSampleRenderer.xaml.cs b/CommunityToolkit.App.Shared/Renderers/ToolkitSampleRenderer.xaml.cs
index 4417837e..6af5bc68 100644
--- a/CommunityToolkit.App.Shared/Renderers/ToolkitSampleRenderer.xaml.cs
+++ b/CommunityToolkit.App.Shared/Renderers/ToolkitSampleRenderer.xaml.cs
@@ -193,10 +193,13 @@ private async Task LoadData()
// Generated properties reference these in getters and setters.
propertyContainer.GeneratedPropertyMetadata = Metadata.GeneratedSampleOptions;
- SampleOptionsPaneInstance = new GeneratedSampleOptionsRenderer
+ if (propertyContainer.GeneratedPropertyMetadata is not null)
{
- SampleOptions = propertyContainer.GeneratedPropertyMetadata
- };
+ SampleOptionsPaneInstance = new GeneratedSampleOptionsRenderer
+ {
+ SampleOptions = propertyContainer.GeneratedPropertyMetadata
+ };
+ }
}
else
{
diff --git a/CommunityToolkit.Tooling.SampleGen/Metadata/IToolkitSampleGeneratedOptionPropertyContainer.cs b/CommunityToolkit.Tooling.SampleGen/Metadata/IToolkitSampleGeneratedOptionPropertyContainer.cs
index 35bfd81b..56fa997d 100644
--- a/CommunityToolkit.Tooling.SampleGen/Metadata/IToolkitSampleGeneratedOptionPropertyContainer.cs
+++ b/CommunityToolkit.Tooling.SampleGen/Metadata/IToolkitSampleGeneratedOptionPropertyContainer.cs
@@ -16,5 +16,5 @@ public interface IToolkitSampleGeneratedOptionPropertyContainer
/// as a proxy between the current actual value and the
/// generated properties which consume them.
///
- public IEnumerable? GeneratedPropertyMetadata { get; set; }
+ public IGeneratedToolkitSampleOptionViewModel[]? GeneratedPropertyMetadata { get; set; }
}
diff --git a/CommunityToolkit.Tooling.SampleGen/Metadata/ToolkitSampleMetadata.cs b/CommunityToolkit.Tooling.SampleGen/Metadata/ToolkitSampleMetadata.cs
index 2c0eb17c..417b7f28 100644
--- a/CommunityToolkit.Tooling.SampleGen/Metadata/ToolkitSampleMetadata.cs
+++ b/CommunityToolkit.Tooling.SampleGen/Metadata/ToolkitSampleMetadata.cs
@@ -50,7 +50,7 @@ public sealed class ToolkitSampleMetadata
///
/// Gets or sets the generated sample options that were declared alongside this sample, if any.
///
- public IEnumerable? GeneratedSampleOptions { get; set; }
+ public IGeneratedToolkitSampleOptionViewModel[]? GeneratedSampleOptions { get; set; }
///
/// Contains the metadata needed to identify and display a toolkit sample.
@@ -74,7 +74,7 @@ public ToolkitSampleMetadata(
Func