gpt4 book ai didi

c# - 银光 : How to do data entry to a collection?

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:25 25 4
gpt4 key购买 nike

我有一个用于跟踪费用的应用程序。用户通过表单添加新的费用。费用保存在一个集合中。

我是 Silverlight 的新手,不确定设置我的应用程序的最佳方式到底是什么。目前,我有一个 DataGrid,其中包含我定义的用于很好地格式化 ICollection 成员的列。在后面的代码中,我指定了一个集合作为数据网格的 ItemSource

每项费用都由一个名为 ExpenseInfo 的类表示。

要添加新的费用,我想我会创建一个新的 ExpenseInfo 实例,并且数据将表单输入中的值绑定(bind)到它。然后,当用户点击提交时,该实例将被添加到集合中。

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

另外,现在我正在将 ExpenseInfo 项添加到后备集合中,但数据网格没有改变。 (也许我的绑定(bind)模式有误?)这在页面构造函数中有效:

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

“不起作用”是指新项目没有出现在数据网格中。

最佳答案

您可以在 silverlight 中使用 observablecollection,

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

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

3- observablecollection 监听更改,以便在网格中添加新行。

关于c# - 银光 : How to do data entry to a collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com