【发布时间】:2017-01-05 17:58:06
【问题描述】:
我刚开始使用通用 Windows 平台,实际上也是 C#(我有 C 背景),只是想尝试使用一个基本的会计应用程序来跟踪支票簿。它的工作方式很简单,用户按下 + 或 - 按钮并指定交易的名称和贷记或借记的金额,点击确定,该交易将作为一行插入。
所以它看起来像这样
Gas ($20) 1/5/17 _delete_button_
Paycheck $2400 1/3/17 _delete_button_
Total $2380
....
所以每一行都有 2 个可编辑的文本框(名称和金额)、一个用于日期的文本字段和一个用于删除该行的按钮。
现在,作为 C 程序员,我的第一直觉就是用这些变量创建一个结构,每次用户插入一行时,只需填充该结构并将其压入堆栈。但是,我只想确保这是执行此操作的最佳方式,并且我不会错过 XAML 的某些功能,可以让我执行此操作。
【问题讨论】:
-
什么样的 UI 元素包含所有的行
-
XAML 是通常定义视图的语言,尽管语法可用于绑定到模型中的对象(即 C# 或 F# 或其他)。因此,XAML 并没有真正的“功能”允许您创建和操作集合......除了绑定到结构或您正在使用的任何模型。
-
@Aaron Thomas 我遇到了类似 ResourceDictionary 的东西,但我认为它用于画笔等,但也许我认为我可以做一些事情,比如在 XAML 中为一行定义一个模板,然后插入该模板。因为现在我基本上是在绕过 XAML,只是对 C# 中的所有行进行编程
-
@TimAkgayev 您是让用户通过弹出表单添加新数据还是仅使用底部的空白行?如果您不使用空白行,您可以考虑使用的功能是 AaronThomas 提到的绑定。您是否在某种集合中维护您的对象?
-
@TimAkgayev 刚刚看到您的新评论。我个人会有一个描述每个行项目的类,并将其存储在某种绑定到 UI 元素的集合中。这实际上取决于您尝试制作的会计应用程序的复杂程度。例如,假设您想让您的应用程序按费用类型提供搜索功能。如果您仅将数据存储在网格中,它将变得非常混乱,而如果您的对象存储在集合中,您只能显示某些元素,并且仍然存储所有对象并且可以回滚
标签: c# xaml uwp win-universal-app