WPF 工具包数据网格:源是否需要可序列化

本文关键字:是否 序列化 工具包 数据 数据网 网格 WPF | 更新日期: 2023-09-27 18:36:38

我有一个选项卡控件,内容是WPF工具包数据网格。选项卡控件绑定到字典(下面的代码中的 Model.Radios)。字典条目的值是从 CSLA 业务列表基类派生的自定义列表。所有这些都有效,但是当我单击数据网格中的单元格时,我不断收到异常,指出某些类未标记为序列化。首先是列表类,然后是组成列表项的类。列表中的项目位于大约 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>

WPF 工具包数据网格:源是否需要可序列化

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