我正在开发一个 C# WPF 组件(使用 VS2010 版本 10.0.40219.1 SP1Rel),其中包含 int 和 List 等公共属性。
该组件似乎可以通过 VS2010 wpf 编辑器进行序列化,因为 .xaml 中生成的 xml 块如下所示:
<Parent>
<NumberProperty>10</NumberProperty>
<ListProperty>
<Item>
blah
</Item>
</ListProperty>
</Parent>
当反序列化组件(即运行应用程序)时,会读取 List 属性(运行 getter)并将项目添加到其中。没有为列表运行设置器。
问题是列表包含故意的默认项目,该项目在项目父构造函数中添加到列表中。如果相关 xaml 中有可用的,这些/此预先存在的项目应替换为列表中的项目。
我尝试DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)
作为列表属性没有运气。
那么是否可以通过环境的某些属性来判断它应该替换列表属性(调用设置器)而不是向其中添加项目?