我有一个非常复杂的数据绑定,我想在这里使用以下方法完成:
mainTable
2 个名为和的SQL CE 表secondaryTable
- 1 Fluidkit ElementFlow 控件命名为
myElmntFlow
- 2个用户控件命名
myUsrCtrl
和otherUsrCtrl
以上所有内容都已创建并实现,但用户控件myElmntFlow
通过冗长的后台工作代码以编程方式填充到控件的项目列表中,当要输入的项目数大于 20 时,运行该代码确实需要一些时间。
到目前为止,它们是这样创建的:如果“Selected”列中的行值 =“'Yes'” ,backgroundworker 循环遍历每一行mainTable
并将myUsrCtrl
控件添加到项目列表中。myElmntFlow
然后,它修改新添加的内容:它为每一行myUsrCtrl
添加 aotherUsrCtrl
到堆栈面板(myUsrCtrl
名为创建了控件。stckPanel
secondaryTable
mainTable
myUsrCtrl
然后用当前查看的行的值填充otherUsrCtrl
的几个标签。secondaryTable
非常令人困惑,但这是一个复杂的场景。让我们举个例子:
- 在
mainTable
中,第 4 行的 FullName 值为“Chad Jones”,并且 Selected 值为“Yes”。 - 控件的新实例
myUsrCtrl
被添加到 的myElmntFlow
项目列表中,如下所示:myElmntFlow.Items.Add(myUsrCtrl)
; - 新添加的 myUsrCtrl 控件有一个 stackpanel (
stckPanel
) - 我们过滤
secondaryTable
FullName = "Chad Jones" 的地方 - 对于现在过滤的每一行,我们向先前创建的
控件
secondaryTable
添加一个新实例otherUsrCtrl
myUsrCtrl
stckPanel
- 中的不同标签
otherUsrCtrl
填充了中行的值secondaryTable
这是否可以在控件的 XAML 中转换为 DataBinding,因为我想稍后实现几个功能(例如带有自动完成功能的漂亮 SearchBox),如果它们要通过编写数百行来编码,那将是非常糟糕的告诉哪些数据要过滤、排序、获取、比较等...
我尽可能清楚地写了这个,只是希望它是可以理解的。
PS:我想保留我的 SQL 结构,因为随着时间的推移,数据会变得相当重要,而且我相信 SQL 是处理数千行代码的最佳选择。