现在的位置: 首页 > 综合 > 正文

WinRT: 碉堡了!支持IDictionary的Binding!

2013年01月15日 ⁄ 综合 ⁄ 共 611字 ⁄ 字号 评论关闭

数据绑定:Binding,这个WPF在最初版本2006年就有的功能,应该算上WPF(或者说XAML)最吸引人的功能之一了,而WinRT中的绑定又增加了一个惊异的特性:直接绑定一个IDictionary<string, object>对象,第一个string代表绑定路径(所以其他类型不可以),第二个object就代表属性的值。我试了<string, string>, <object, object>都不可以,只有<string, object>才可以使绑定生效。这个是我在研究Visual Studio 2012工程模板中的LayoutAwarePage类型的DefaultViewModel中发现,DefaultViewModel用的是ObservableDictionary<string, object>类型,继承IObservableMap<string, object>接口,当然测试证明任何IDictionary<string, object>都是可以的。

 

代码就很简单了,XAML上随便设置一个绑定:

<Button Content="{Binding Path}"/>

 

背后把DataContext设置成一个IDictionary<string,object>:

var dic = new Dictionary<string, object>()

{

    {"Path", "Mgen"}

};

this.DataContext = dic;

 

 

结果:

image

抱歉!评论已关闭.