我目前已經使用與Windows窗體中的驗證相關的屬性來裝飾業務對象中的屬性。用於指定屬性或字段的顯示格式的屬性
我想添加一些屬性來確定數據的格式。這將希望能夠與數據綁定無縫協作。
有沒有辦法做到這一點?
我目前已經使用與Windows窗體中的驗證相關的屬性來裝飾業務對象中的屬性。用於指定屬性或字段的顯示格式的屬性
我想添加一些屬性來確定數據的格式。這將希望能夠與數據綁定無縫協作。
有沒有辦法做到這一點?
格式化(Winforms中)經由兩個主要方法來實現的:
ToString()
TypeConverter
子類,並在自定義使用[TypeConverter(...)]
類型(或一類等的特性),以應用格式(當目標類型是typeof(string)
)例如:
using System;
using System.ComponentModel;
using System.Windows.Forms;
class MyObject
{
[TypeConverter(typeof(MyConverter))]
public decimal SomeValue { get; set; }
}
class MyConverter : TypeConverter {
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType)
{
if(destinationType == typeof(string)) {
return "Our survery says: " + value + "%";
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
static class Program {
[STAThread]
static void Main() {
using(var form = new Form()) {
form.DataBindings.Add("Text",new MyObject { SomeValue = 27.1M}, "SomeValue", true);
Application.Run(form);
}
}
}
我在考慮更多的成員/屬性(已經有驗證屬性),我也可以應用某種屬性來控制格式。這將包括內置類型,如雙等。 – 2010-06-05 18:06:43
@ user144182 - 是不是我所顯示的?一個屬性('SomeValue'),帶有一個屬性('[TypeConverter]')來協助格式化,處理一個內置的類型('decimal') – 2010-06-06 07:09:57
對不起馬克,我不清楚 - 我一直在想可能能夠在屬性本身中指定格式字符串的行,比如[DataFormat(0.00)]。 – 2010-06-06 21:39:58
您針對哪個平臺? WPF?的WinForms? Silverlight的? – Giorgi 2010-06-04 21:27:43
winforms是我目前使用的 – 2010-06-04 21:35:54
基本上我正在尋找解決方案,例如,我有多個「雙」成員,但希望顯示每個有不同數量的有效數字。具有類似於驗證屬性的「格式」屬性是有意義的。 – 2010-06-07 13:02:41