DevExpress Winforms Databinding:DisplayFormat被忽略

时间:2011-04-14 04:13:40

标签: devexpress

我正在像这样数据绑定和格式化TextEdit控件:

txtArea.DataBindings.Add("EditValue", _ProductItem, "Area", true, DataSourceUpdateMode.OnPropertyChanged);
txtArea.Properties.Mask.EditMask = @"\d*\.{0,1}\d{1,3}";

在此TextEdit文本框的属性中,我设置了属性 - >面具 - > MaskType到RegEx。而且,属性 - > DisplayFormat - > FormatType是Numeric,FormatString设置为n3。

如果数据绑定EditValue设置为24.12345,那么当我运行应用程序时,这就是文本框中显示的内容。但是,我期待看到24.123。当我单击文本框时,显示的值将正确更改为24.123。但是当我退出文本框(没有做任何更改)时,它会重新设置为24.12345的原始EditValue。

如果我对EditValue进行硬编码,如txtArea.EditValue = 24.12345,则初始显示为24.123。在编辑模式下,按预期方式为24.123。

就像DataBinding完全忽略了DisplayFormat属性一样。有没有人使用DevExpress控件有这方面的经验?

2 个答案:

答案 0 :(得分:4)

以下是修复:

将txtArea.Properties.Mask.UseMaskAsDisplayFormat设置为true。

虽然我在使用各种格式化选项之前尝试过,但这种方法很有效。

答案 1 :(得分:0)

memoEdit.DataBindings.Add("Text", DataSource, "DataMember", false, DataSourceUpdateMode.OnPropertyChanged);

//或

 memoEdit.DataBindings.Add("EditValue", DataSource, "DataMember", false, DataSourceUpdateMode.OnPropertyChanged);