我有一个标签控件,其内容是WPF Toolkit Datagrid。选项卡控件绑定到字典(下面的代码中的Model.Radios)。字典条目的值是从CSLA BusinessListBase类派生的自定义列表。一切正常,但当我点击数据网格中的一个单元格时,我不断得到一个异常,即某些类没有标记为序列化。首先是列表类,然后它抱怨构成列表项的类。列表的项目在一个类层次结构中,大约有6个类,所以在我将几个类标记为Serializable后,我开始怀疑这是否有必要。我已经使用了数据网格已经有一段时间了但是我发誓我最后一次使用它并没有碰到它,它只是起作用。有什么我想念的吗?也许这与CSLA而不是数据网格有关......不确定。
<TabControl Grid.Row="1" Name="myTabControl" ItemsSource="{Binding Model.Radios}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding (collections:DictionaryEntry.Key)}"></TextBlock>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<tk:DataGrid ItemsSource="{Binding (collections:DictionaryEntry.Value)}" AutoGenerateColumns="False" >
<tk:DataGrid.Columns>
<tk:DataGridTextColumn Header="Number" Binding="{Binding PresetNumber}" IsReadOnly="True" Width="Auto"/>
<tk:DataGridTextColumn Header="Identifier" Binding="{Binding Identifier}" />
<tk:DataGridTextColumn Header="Frequency" Binding="{Binding Frequency}" />
</tk:DataGrid.Columns>
</tk:DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
答案 0 :(得分:0)
对象图中的每个类都应标记为[Serializable]
,包括任何基类(您可以通过查看基类的CSLA源代码来确认它们;它们都是可序列化的); CSLA正在尝试将整个图表序列化到您的WPF应用程序中,如果不存在,它将会中断。