我想将网格中的选定元素绑定到不同页面上的文本框。
可以这样做吗?
答案 0 :(得分:0)
如果您的意思是完全独立的页面,那些屏幕只是单独存在。当您的“文本框页面”出现时,之前的“网格页面”不再存在。如果可以做到,我的答案将是“不要这样做”,因为你最终会将彼此紧密绑定的单独页面结束。这被认为是一种不好的做法。
最新的Silverlight实践表明,数据应该通过比屏幕更长寿的模型和视图模型共享(在Google上查找Silverlight MVVM模式)。 View Models基本上是一个移动代码隐藏的地方。目的是让您的XAML页面几乎没有代码。
基本上,您希望屏幕共享公共数据。在这种情况下,您将当前选择包括在数据项列表中(您实际上并不关心它是否是执行实际选择的网格)。
“网格屏幕”绑定到数据模型以获取其网格的数据源,并且还将其当前选定的项绑定到数据模型中的项。创建时,相同的模型(或视图模型)将绑定到“文本框页面”。该页面上的文本框绑定到先前存储在数据模型中的结果。
一个缺点是数据模型/视图模型中的所有可绑定属性都必须是Dependancy Properties。如果你不使它们可绑定,你就不会得到错误,只有没有数据。