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