繁体   English   中英

WPF C#-复杂数据绑定

[英]WPF C# - Complex Data Binding

我有一个非常复杂的数据绑定,我想使用以下内容在这里完成:

  • 2个名为mainTablesecondaryTable SQL CE表
  • 1个名为myElmntFlow Fluidkit ElementFlow控件
  • 2个名为myUsrCtrlotherUsrCtrl用户控件

以上所有步骤均已创建和实现,但通过myElmntFlow的backgroundworker代码以编程方式将UserControl填充到myElmntFlow控件的项目列表中,当要输入的项目数大于20时,该代码确实会花费大量时间。

这是他们得到怎样截至目前创建:BackgroundWorker的遍历的每一行mainTable并添加myUsrCtrl控制在项目列表myElmntFlow如果列该行的值“选择” =“‘是’”。

然后,它修改新添加的内容myUsrCtrl这样:它增加了一个otherUsrCtrlmyUsrCtrl的StackPanel中(名为stckPanel ),用于在每行secondaryTable其中列‘全名’的值=的同一列的值我们用来创建myUsrCtrl控件的mainTable行。

然后使用当前otherUsrCtrlsecondaryTable行的值填充otherUsrCtrl标签。

非常令人困惑,但这是一个复杂的场景。 我们来看一个例子:

  • mainTable ,行#4的FullName值为“ Chad Jones”,并且Selected值为“ Yes”。
  • myUsrCtrl控件的新实例添加到myElmntFlow的项目列表中,例如: myElmntFlow.Items.Add(myUsrCtrl) ;
  • 新添加的myUsrCtrl控件具有一个stackpanel( stckPanel
  • 我们过滤secondaryTable ,其中FullName =“ Chad Jones”
  • 对于现在已过滤的secondaryTable中的每一行,我们向以前创建的myUsrCtrlstckPanel控件中添加otherUsrCtrl的新实例。
  • otherUsrCtrl中的不同标签填充了secondaryTable中的行值

可以将其转换为控件的XAML中的DataBinding吗,因为我以后要实现几个功能(例如,具有自动完成功能的漂亮SearchBox),如果要通过写几百行代码来对它们进行编码的话,这些功能将非常差告诉您要过滤,排序,获取,比较等数据...

我写得很清楚,只是希望它是可以理解的。

PS:我想保留我的SQL结构,因为随着时间的流逝数据将变得相当重要,我相信在处理数千行时,SQL是必经之路。

这不是一个非常令人迷惑的场景,只是由于那里发生的复杂处理而令人困惑。 使用绑定和MVVM(Model-View-ViewModel)确实可以使它变得容易得多,因此请花一些时间来阅读它的基础知识。 网络上有大量的教程和入门资料,简单的搜索将为您提供足够的继续学习的机会。

当您熟悉这些概念时,所需要做的就是将数据转换为一系列对象(无论如何处理),然后使用ItemsControl代表项目列表的UI。 使用DataTemplates指定应如何显示每个项目,并将DataTemplate中的元素绑定到每个项目的属性。 这些东西可以嵌套,这样您就可以在DataTemplates中拥有ItemsControls,从而使用其他DataTemplates等。

为了表示绑定到ItemsControl的项目集合,请使用ICollectionView进行研究,这将极大地帮助进行过滤/排序/等操作。

抱歉,笔触非常广泛,但这是一个相当广泛的问题。 如果您需要更多具体的帮助,我会很乐意添加更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM