代码之家  ›  专栏  ›  技术社区  ›  Nick Heiner

Silverlight:如何对集合进行数据输入?

  •  2
  • Nick Heiner  · 技术社区  · 14 年前

    我有一个追踪费用的应用程序。用户通过表单添加新费用。费用集中保管。

    我是Silverlight的新手,不知道设置我的应用程序的最佳方法是什么。目前,我有一个 DataGrid 使用我定义的列来格式化 ICollection 很好地。在代码隐藏中,我指定了一个集合作为 ItemSource 数据网格的一部分。

    每个费用都由一个名为 ExpenseInfo

    为了增加新的开支,我在想我应该再举一个新的例子

    我不太清楚怎么做。我是否在Xaml中指定它?在代码隐藏中?

    还有,现在我要补充 费用信息 项,但数据网格不变。(也许我的绑定方式不对?)这在页面构造函数中起作用:

            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"});
    

    我所说的“不起作用”,是指新项目不会出现在数据网格中。

    1 回复  |  直到 14 年前
        1
  •  0
  •   TalentTuner    14 年前

    你可以在silverlight中使用observablecollection,

    1-您在ItemSource中使用的集合可以是ExpenseInfo的observablecollection。

    2-必须有一个名为“添加更多费用”的按钮。当用户单击此按钮时,可以创建一个新的ExpanseInfo对象并将其添加到集合中。