0

我有一个选项卡控件,其内容是 WPF Toolkit Datagrid。选项卡控件绑定到字典(下面代码中的 Model.Radios)。字典条目的值是从 CSLA BusinessListBase 类派生的自定义列表。所有这些都有效,但是当我单击数据网格中的一个单元格时,我不断收到一个异常,即某些类没有被标记为序列化。首先是列表类,然后它抱怨组成列表项的类。列表中的项目在大约 6 个类深的类层次结构中,所以在我将一些类标记为可序列化后,我开始怀疑这是否有必要。自从我使用数据网格以来已经有一段时间了,但我发誓我上次使用它时并没有遇到这个问题,而且它确实有效。有什么我想念的吗?也许这与 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>
4

1 回答 1

0

对象图中的每个类都应标记为[Serializable],包括任何基类(您可以通过查看基类的 CSLA 源代码来确认这一点;它们都是可序列化的);CSLA 正​​在尝试将整个图形序列化到您的 WPF 应用程序中,如果不存在,它将中断。

于 2014-01-10T17:42:32.277 回答