1
바라건대 간단한 질문입니다. 다른 사용자 지정 컨트롤 목록이 들어있는 종속성 속성이있는 사용자 지정 컨트롤이 있습니다. 제네릭 형식 'System.Windows.FreezableCollection`을 serialize 할 수 없습니다.
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); }
}
이
다음 컨트롤<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>
내 문제 지금은 파일에이를 직렬화 할 것입니다하지만 난 '제네릭 형식을 직렬화 할 수 없다'는군요 시스템을 채우기 위해 XAML 내에서 사용 .Windows.FreezableCollection` 'XamlWriter.Save 사용할 때. 이 일반 클래스의 경우 serialize 할 수있는 방법을 설명하기 위해 특성을 사용할 수 있습니다 (맞습니까?)하지만 정적 종속성 속성을 어떻게 serialize 할 수 있습니까?
믿을 수 있지만 사실을 교체! ObservableCollection <>에 대해서도 유효합니다. – Ozzy