我有一個跟蹤費用的應用程序。用戶通過表單添加新的費用。費用保存在一個集合中。Silverlight:如何對集合進行數據輸入?
我是Silverlight的新手,不確定設置我的應用的最佳方式是什麼。目前,我有一個DataGrid
列,我已經定義好格式化ICollection
的成員。在後面的代碼中,我將一個集合指定爲數據網格的ItemSource
。
每筆費用由一個名爲ExpenseInfo
的類表示。
爲了增加新的費用,我想我會創建一個ExpenseInfo
的新實例,並且數據將表單輸入中的值綁定到它。然後,當用戶點擊提交時,該實例將被添加到集合中。
我不完全確定如何做到這一點。我是否在Xaml中指定它?在代碼隱藏?
此外,我現在將ExpenseInfo
項目添加到後備集合,但數據網格不會更改。 (也許我的結合模式是錯的?)這工作在頁面的構造函數:
CurrentExpensesGrid.ItemsSource = expenses;
ExpenseInfo initialExpense = new ExpenseInfo() { Cost = "23", Date = DateTime.Now, WhoPaid = "foo", Name = "bar" };
initialExpense.WhoOwes.Add("baz");
initialExpense.WhoOwes.Add("ftw");
expenses.Add(initialExpense);
但是,下面的添加按鈕單擊事件處理程序不起作用:
expenses.Add(newExpense);
expenses.Add(new ExpenseInfo() {Cost="2", Name="fje", Date = DateTime.Now, WhoPaid="foe"});
並以「沒有按不起作用「,我的意思是新項目不會出現在數據網格中。
我是否需要將綁定模式設置爲兩種方式?我能做到這一點,而不指定它的約束力? – 2010-10-03 15:02:41