簡體   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