虽然我已经使用C#多年了,但我必须承认我是WPF + Infragistics控件的新手。如果您有任何见解,我很乐意听取您对以下情况的看法:
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>
参考
答案 0 :(得分:1)
使用TemplateColumn.ItemTemplate
保留XamGrid
时,似乎没有序列化ig:PersistenceManager
(又名:SeverityColumn)。结果:
TemplateColumn.ItemTemplate
,并以适当的格式显示该列(使用提供的IValueConverter
)。
ItemTemplate
使用 Visual Studio的调试程序和观看窗口ig:PersistenceManager
在反序列化TemplateColumn.ItemTemplate
时明确将XamGrid
设置为null。
ig:TemplateColumn
Key
以从DataContext
<加载数据/ LI>
更新1
现在我对 what 有了更好的理解,我可以为为什么提供解释。以下内容直接来自Infragistics文档:
&#34; Infragistics Control Persistence Framework未保存某些类型的属性。它不保存AttachedProperties, DataTemplates ,路径,ControlTemplates,样式和ItemPanelTemplates。&#34;