依赖属性与我的外部数据存储



我想为我的用户控件添加一个属性。如果我理解正确的话,当我想允许对其使用数据绑定时,必须将其声明为依赖属性。依赖属性将其值存储在Silverlight系统中隐藏的某个数据字段中。但我需要的数据是存储在格式以外的类型的属性,这里是问题。是否有可能声明依赖项属性,但使用我自己的数据存储作为其值?

我问这个是有原因的。我想允许在xml字符串中导入和导出数据,但在内部将它们存储在一组对象中,并能够移动这些对象。所以我想有一个string属性,我需要把xml字符串转换成我的内部不同的数据格式,然后导出它回到字符串时保存回数据库。

当前版本是一个标准属性。它连接到两个转换方法:

public string XmlData {
  get { return ExportToXML(); }
  set { ImportFromXML(value); }
}

如何将此代码转换为依赖属性(为了允许数据绑定)?

更新:

如果使用依赖属性的回调很容易实现setter。但是getter不支持回调

依赖对象具有已定义的类型,但与简单属性甚至更新属性的主要区别在于,可以在不调用getter和设置的情况下修改值。

只有附加(依赖)属性从外部调用它们的静态setter(在解析Xaml期间)。

DP的Setter/Getter对是为了方便您避免大量的强制转换。SetValue实际上被其他所有东西(故事板系统等)使用。

这样做的结果是,您可以使用附加的属性钩入解析并执行一些自己的存储,但否则我认为您就不走运了。

据我所知,不幸的是,我所要求的事情不能在Silverlight中完成。

最新更新