- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 IFormatProvider 来自定义一些数据绑定(bind);但是,永远不会调用 IFormatProvider 类。我在我的自定义格式类中的两个函数的开头都放置了断点,并且都没有通过数据绑定(bind)命中。当我将我的自定义格式化类与 String.Format 一起使用时,它会起作用。
我正在使用 .Net 2.0 和 winforms。
这是我进行数据绑定(bind)的方式:
label1.DataBindings.Add("Text", textBox1, "Text", true,
DataSourceUpdateMode.OnPropertyChanged,
"<NULL>","{0:H}",new MyFormat());
这就是我使用 String.Format 的方式:
string test =(string.Format(_superFormat, "{0}", "this is my arg"));
这是我的自定义格式类:
class MyFormat : IFormatProvider, ICustomFormatter
{
string ICustomFormatter.Format(string format, object arg, IFormatProvider formatProvider)
{
string result = ((string)arg).ToUpper();
return result ;
}
object IFormatProvider.GetFormat(Type formatType)
{
if (formatType == typeof(ICustomFormatter))
return this;
else
return null;
}
}
最佳答案
你到底想做什么?
假设 Text
属性是一个字符串,那么据我所知不能使用格式化程序,因为 string
没有t 实现 IFormattable
。
Binding
类(DataBindings.Add
的基础)有一个 Format
事件和 Parse
可用于控制格式的事件。您还可以在目标绑定(bind)属性上使用 TypeConverter
,我喜欢这样做,因为它将此逻辑从 UI 移开。
那么:您有想要做什么的示例吗?
关于c# - DataBindings.Add 使用 IFormatProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786903/
如果我们使用 ParseExact 方法对使用指定格式的exact 日期时间进行解析,为什么我们需要提供一个IFormatProvider 对象?它背后的意义是什么? 例如: DateTime.Par
我的对象中有一个整数值。我需要将其转换为整数值。所以我就这样做了。System.Convert.ToInt64(对象)但FxCop说我需要提供IFormatProvider。字符串数据类型我对提供 I
我在玩 Datetime.ParseExact 方法,它需要一个 IFormatProvider... 它可以输入 null,但它到底做了什么? 最佳答案 除了 Ian Boyd 的回答: Cultu
我尝试在我们产品的几个程序集上运行 FxCop,我得到了很多“指定 IFormatProvider”规则的匹配项。 碰巧,其中一些是合法的,但它也匹配这样的代码: Logger.DebugFormat
我正在使用为我指定的区域性将字符串转换为值作为 IFormatProvider。 我想弄清楚他们给我的是哪种文化。 我意识到 IFormatProvider 不一定必须对应于 System.Globa
var numberFormat = new NumberFormatInfo(); numberFormat.NumberDecimalSeparator = "."; numberFormat.N
我在从 double 到 string 的转换时遇到问题。 我要转换: double value: 0.0772486324655191 string value: 0.077248632465519
我正在尝试创建一个具有以下签名的字符串扩展方法: public static DateTime? TryParseExact(this string src, string format, IForm
如何将 IFormatProvider 传递给 StreamWriter? 特别是我想创建一个 new StreamWriter("myfile.txt", CultureInfo.Invariant
例如,当将 decimal 转换为 string 时,您使用 CultureInfo.InvariantCulture 并将其作为 IFormatProvider。但为什么这个重载不在 object
我正在尝试使用 IFormatProvider 来自定义一些数据绑定(bind);但是,永远不会调用 IFormatProvider 类。我在我的自定义格式类中的两个函数的开头都放置了断点,并且都没有
如果我错了,请有人纠正我,但是在 C# 中解析 yyyy/MM/dd(或其他特定格式)日期应该就像一样简单 DateTime.ParseExact(theDate, "yyyy/MM/dd"); 但是
我试图创建一个 IFormatProvider 实现来识别 DateTime 对象的自定义格式字符串。这是我的实现: public class MyDateFormatProvider : IFor
在 Convert 类中进行以下重载对我来说是有意义的 public static double ToDouble(string value, IFormatProvider provider); 示
为什么我们要在DateTime.ParseExact中使用IFormatProvider,如果已经有一个格式参数? DateTime.ParseExact(inputString, format, c
这段代码给我这个错误: var n = "9/7/2014 8:22:35 AM"; var m = n.ToString("yyyy-MM-dd'T'HH:mm:ssZ"); 但这段代码可以正常工作
在 ParseExact 方法的第一次重载中 public static DateTime ParseExact (string s, string format, IFormatProvider p
在 DateTime 格式字符串中有没有办法只包含月份的第一个字母? new DateTime(2015, 1, 12).ToString("M-dd-yy") // "1-12-15", but
IFormattable、IFormatProvider和ICustomFormatter有什么区别和联系,什么时候用?一个简单的实现示例也会非常好。 我并不是说什么时候在 .net 框架中使用它,而
如果您在字节上调用 ToString 以将其转换为 2 位十六进制值,是否以任何方式使用 CultureInfo.CurrentCulture 或 CultureInfo.InvariantCultu
我是一名优秀的程序员,十分优秀!