我有一个跟踪费用的应用程序。用户通过表单添加新的费用。费用保存在一个集合中。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