在我爲我的教會設計的WPF頁面中,我有兩個綁定到兩個Linq-to-Entities查詢結果的ListBox控件:第一個listbox/query包含所有誰還沒有保證今年,第二個列表框/查詢包含所有已經承諾的人(以及他們相關的承諾)。具體做法是:引用WPF DataTemplate中的控件
var familiesWithNoPledges = from family in entities.Family.Include("Pledge")
where !family.Pledge.Where(p => p.PledgeYearID == pledgeYear).Any()
select family;
var familiesWithPledges = from family in entities.Family
join pledge in entities.Pledge.Include("PledgeFrequency").Where(p => p.PledgeYearID == pledgeYear) on family equals pledge.Family
select new { family, pledge };
當應用程序的用戶從第一個列表框選擇一個家庭,ListBox中的項目稍微膨脹,以示對質押的領域,所以它很容易質押詳細信息添加到第二個列表框。它看起來是這樣的:
http://wouldbetheologian.com/images/PledgeManager.jpg (Offsite Image)
的基礎數據庫(除其他事項外),有一個「家庭」表1:許多關係到一個「承諾」表。當用戶點擊「Add Pledge」按鈕時,我想創建新的Pledge實例,將其保存到數據庫,然後刷新這兩個控件。
但我無法弄清楚如何做到這一點。如果我嘗試在代碼隱藏中做到這一點,它看起來並不像「Add Pledge」按鈕的(n-instance)事件處理程序可以引用有問題的控件;並在XAML中,如果我嘗試將ListBoxItem DataTemplate控件綁定到Family.Pledge(或Family.Pledge.FirstOrDefault())字段,那麼當我查看Add的事件處理程序中的當前Family對象時,這些字段仍爲空祈願按鈕。
有關如何解決這個問題的想法?還是有更好的UI模型,我應該看看?
在此先感謝。