在我的WPF应用程序中,我有一个静态List<Guest>
。 Guest
包含Name
,Lastname
,Birthday
等属性。
我的问题是Birthday
。我想在Birthday
中显示DateTime
TextBlock
类型DD/MM/YYYY
。我想要的输出格式类似于DateTime.ParseExact(s, "yyyyMMdd").ToLocalTime()
。我曾想过使用这样的解析方法:
DateTime
还有更好的方法可以避免这种解析吗?例如,C#是否有{{1}}的转换器?请注意,我只需要为输出执行此转换。
答案 0 :(得分:1)
痛苦的方法是手动进行格式化和解析。优雅的方法是将表单绑定到包含属性的对象。使用对象数据绑定时,您可以指定格式。两种方式的转换都是自动执行的。
除了具有与字符串之间自动转换的优点之外,您还可以将业务逻辑与表单分开。例如,如果逻辑位于guest.DateOfBirth
类中,则可以将任何逻辑应用于名为DateOfBirth
的属性(或仅Guest
),而不是将其应用于{{1这使得理解和维护代码变得容易得多。
请参阅:
Data Binding for Windows Forms(关于developerfusion)
Data binding concepts in .NET windows forms(在CodeProject上)