c# - 是否有一种不笨拙的方法来使用绑定(bind)数据执行特殊情况格式化?

标签 c# winforms datetime data-binding formatting

我将表单上的许多控件绑定(bind)到从方法调用返回的对象,如下所示:

textBoxMoonBeam.DataBindings.Add(new Binding("Text", pi, "MoonBeam"));

注意:“pi”是 PlatypusInfo 类实例化的名称。

...但是当我获取 dateTime 值(根据定义包括附加到日期的时间)时,但我只想在控件中显示日期,我必须避开上面的绑定(bind)类型和相反,这样做:

textBoxDateAztecsFirstSawElvis.Text = pi.DateAztecsFirstSawElvis.ToString("d");

有没有办法像第一个示例一样绑定(bind)我的数据,并且仍然截断日期?

最佳答案

使用绑定(bind)源的Format事件。

类似这样的事情:

Binding binding = new Binding("Text", pi, "DateAztecsFirstSawElvis", true);
binding.Format += binding_Format;
textBoxDateAztecsFirstSawElvis.DataBindings.Add(binding);

void binding_Format(object sender, ConvertEventArgs e) {
  e.Value = ((DateTime)e.Value).ToShortDateString();
}

关于c# - 是否有一种不笨拙的方法来使用绑定(bind)数据执行特殊情况格式化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10639477/

相关文章:

c# - 如何避免使用 async void 事件处理程序重入?

c# - 如何在reportviewer控件中传递报表参数

winforms - 当我在 C++ Windows 窗体应用程序中添加 .settings 文件时,Visual Studio 崩溃

C# - 跟踪打开的子窗体

c# - 为什么单击动态创建的复选框列时会添加新行

mysql - 要删除的 SQL 查询

date - 可以检测 ISO8601 字符串中的日期和时间格式吗?

c# - 使用 SharpZipLib 打包空目录

c# - TPL .ContinueWith 在执行大量任务时优先

date - Apache Pig转换为YYYY-MM-DDThh:mm:ssZ日期格式