> For the complete documentation index, see [llms.txt](https://aptitude.gitbook.io/zaubercms/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aptitude.gitbook.io/zaubercms/extending-zaubercms/custom-admin-sections/reusing-content-editors.md).

# Reusing Content Editors

It's very easy to reuse any of the built in Content Editors, like the ContentPicker or IconPicker, whatever you want, they are just Blazor components that have some required parameters. Example below of reusing the Content Picker

```csharp
<ContentPickerProperty
    Value="@MyStringId"
    Settings="@(JsonSerializer.Serialize(new ContentPickerSettings { MaxAllowed = 1 }))"
    ValueChanged="@(e => MyStringId = e.ToString())"/>
```

**Value** = The initial value you want to pass in to the picker, so if you want an item preselected in this case

**Settings** = Some editors have settings, you can pass them in by serialising them

**ValueChanged** = What to do when the value is updated / changed in the editor.

All editors follow a similar format and all have the Value and ValueChanged parameters.&#x20;
