Microsoft Silverlight DataGrid自定义工具提示

时间:2010-03-10 22:10:33

标签: silverlight datagrid tooltip

我有SL3 DataGrid,需要在行和不同列上提供工具提示,当用户将鼠标悬停在工具提示上时,需要从DataBase获取数据。

我看到了周围的样品                  这有助于使用当前绑定上下文或工具提示的静态内容。

但是,如果用户调出工具提示,我怎样才能获得工具提示中显示的用户控件 另外,有没有办法轻松地将其融入MVVM,而不是在代码背后有大量代码?

1 个答案:

答案 0 :(得分:3)

我认为工具提示没有正确利用数据绑定,或者至少在 I 认为合适的方式。如果您绑定到XAML工具提示声明中的ViewModel属性,该声明将立即解决,这意味着将立即进行调用。我想你可以使用一些附加属性或其他逻辑来列出工具提示打开事件,然后执行异步Web服务调用。

从MVVM的角度来看,VM可能不应该关心为什么需要数据,只需要延迟加载它。因此,您可以在VM上(或者甚至可能在Model对象中)具有公开数据的属性,但是在第一次调用属性时延迟加载数据。当异步调用返回时,您只需触发VM或M上的PropertyChanged事件,该事件应与INotifyPropertyChanged接口。然后,您在视图中的数据绑定将获取更改。弹出工具提示时,让所有这些运行的关键是在工具提示实际弹出之前不绑定数据。可能值得花些时间来扩展工具提示来执行此操作,或者将您自己的容器放在工具提示中以执行此后期数据绑定。