mdriven - MDriven 中的字符串收集器/常量(用于时间选项列表)
问题描述
目标是为MDriven 中的视图模型创建日期和时间选择器。
在日期方面,这很容易通过设置日期类型的变量来实现。
当涉及到时间方面,它似乎有点棘手,因为时间类型不存在,原因很明显。
(是的,在您提出建议之前,我已经阅读了如何在 MDriven 中设置日期和时间选择器?它并没有完全帮助。
语境:
我们试图通过让用户在 Int-form 列中写入他们想要的时间并实施禁止用户编写除“hhmm”之外的其他内容的约束来解决这个问题。虽然这很有效,但它并不实用,并且会减慢用户体验。
理想情况下,我们希望有一个选择列表,用户可以在其中选择预先制作的时间(即 16:00、16:30、17:00 等)。这样,所选时间的格式永远不会破坏我们以后想要使用时间的框架,因为它是有限的。
问题:
这怎么可能达到?当然有一种方法可以创建常量(如硬编码的、单独可见的变量),或者您可以使用特定的运算符收集字符串实例以供此用途?
解决方案
我认为您需要一组常用值可供选择。但可能选择的值可以由用户更改。
我会声明一个 TimeValueStore 类。在这个类中,我将有一个属性,它只包含日期时间的时间部分,所以 0000-00-00 16:00。我会添加一个管理 UI 来维护这些。(我可以使用 DateTime.Parse(vTimeStringValue) 从字符串中解析出 DateTime)。
在 UI 中,我可以有一个带有 TimeValueStore.allinstances 的组合框。当用户更改组合中选取的值时,该值可以分配给视图模型变量 vPickedTime。
我还会有一个 DateTimePicker,它在 vPickedDate 中设置一个日期。
在一个名为“应用”的按钮中,我会有这个表达式:self.TheDateTimeFinallyChoosen:=vPickedDate.Add(vPickedTime)
推荐阅读
- java - 反向递归遍历 B-Tree
- python - 查找重复连续子数组的计数
- reactjs - mapDispatchToProps 调度操作仅适用于一个函数
- python-3.x - 将 Excel 文件导入 Jupyter Notebook
- python - 为抽样创建虚拟总体
- php - 我无法将顺风样式加载到 laravel-jetstream 中的叶片组件
- android - 错误对话框后显示 TextInputEditText 错误
- java - 如何将 YAML 文件数据映射到多个 java 模型中?
- arrays - 有没有一种简单的方法可以在 Ruby 中选择倒数第二个项目?
- angular - Angular 到 ASP.NET Core API - JSON 值无法转换为 System.String