虽然我已经使用了C#很多年了,但我必须承认,我对WPF +不脆弱性控制还是新手。如果你有任何洞察力,我想听听你对以下情况的看法:
Id列的大小。PersistenceManager.Save(IgPersistenceGroup);序列化XamGrid是通过:PersistenceManager.Load(IgPersistenceGroup, _persistedData.IgPersistenceMemoryStream);反序列化的XamGrid绑定到数据源。Id列是预期的大小在这种情况下,XamGrid的整个对象树正在被序列化/反序列化。因此,我怀疑我的问题与:
StaticResource,当应用程序第二次启动时,该引用就不再有意义了。所以我的问题是:当IValueConverter被反序列化时,为什么XamGrid不加载?
实际上,没有必要序列化整个XamGrid.但这是一个完全不同的问题。
附加上下文
示例代码
A列绑定
<ig:TemplateColumn Key="Severity" HeaderText="Event Severity">
<ig:TemplateColumn.ItemTemplate>
<DataTemplate x:Name="SeverityColumn">
<Image HorizontalAlignment="Center" Width="16" Height="16" Source="{Binding Converter={StaticResource SourceToTargetConverter}}" />
</DataTemplate>
</ig:TemplateColumn.ItemTemplate>
</ig:TemplateColumn>** SourceToTargetConverter:不是转换器的真名吗?转换器的名字在这里不相关
B持久化一切
<ig:XamGrid ig:PersistenceManager.PersistenceGroup="{DynamicResource igPG}"
<ig:PersistenceManager.Settings>
<ig:PersistenceSettings SavePersistenceOptions="AllButIgnored" >
<ig:PersistenceSettings.PropertySettings>
<ig:PropertyNamePersistenceInfo PropertyName="FilteringSettings"/>
</ig:PersistenceSettings.PropertySettings>
</ig:PersistenceSettings>
</ig:PersistenceManager.Settings>参考资料
发布于 2014-03-13 20:35:30
当使用TemplateColumn.ItemTemplate持久化时,XamGrid (又名: SeverityColumn)似乎没有被序列化。因此:
TemplateColumn.ItemTemplate,并以适当的格式显示该列(使用提供的IValueConverter)。ItemTemplate
ig:PersistenceManager在反序列化TemplateColumn.ItemTemplate时显式地将XamGrid设置为null。ig:TemplateColumn的Key以从DataContext加载数据。
更新1
现在我对什么有了更好的理解,我可以解释一下为什么。以下内容直接摘自“不脆弱性”文档:
“有一些类型的属性没有保存在不碎片控制持久性框架中。它不保存AttachedProperties、DataTemplates__,路径、ControlTemplates、样式和ItemPanelTemplates。”
[资料来源:关于非脆弱控制持久性框架]
https://stackoverflow.com/questions/22360579
复制相似问题