Une question simple, j'espère. J'ai un contrôle personnalisé avec une propriété de dépendance qui contient une liste d'un autre contrôle personnalisé.
public static readonly DependencyProperty BlockObjectsProperty = DependencyProperty.Register("BlockObjects", typeof(FreezableCollection<BlockObject>), typeof(Block), new FrameworkPropertyMetadata(new FreezableCollection<BlockObject>(), null));
public FreezableCollection<BlockObject> BlockObjects
{
get { return (FreezableCollection<BlockObject>)base.GetValue(BlockObjectsProperty); }
set { base.SetValue(BlockObjectsProperty, value); }
}
Ceci est ensuite utilisé dans le xaml pour remplir les contrôles.
<Viewbox Grid.Row="2" Stretch="Uniform">
<ItemsControl x:Name="tStack" ItemsSource="{TemplateBinding BlockObjects}" ContextMenu="{StaticResource BodyContextMenuKey}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" VerticalAlignment="Stretch" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Viewbox>
Si c'était une classe normale, je pourrais utiliser des attributs pour décrire la manière dont elle doit être sérialisée (n'est-ce pas ?) mais c'est une propriété statique dépendante, alors comment puis-je la sérialiser ?