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

时间:2011-07-25 20:48:51

标签: silverlight data-binding dependency-properties

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

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

当前版本是标准属性。它与一对转换方法相关联:

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

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

更新

AKAIF使用依赖属性的回调很容易实现setter。但是getter没有支持回调。

2 个答案:

答案 0 :(得分:1)

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

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

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

这样做的结果是,您可以使用附加属性挂钩解析并执行一些自己的存储,但除此之外我认为您运气不佳。

答案 1 :(得分:-1)

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