के लिए बाध्यकारी हमारे पास एक कस्टम नियंत्रण है जिसमें सिस्टम की एक "वैल्यू" प्रॉपर्टी है। Nullable (उर्फ सिस्टम। डेटटाइम?)। हमारे पास एक ही प्रकार की "प्राप्त" संपत्ति वाला ऑब्जेक्ट है। जब हम वस्तु को नियंत्रण बाध्य करने के लिए प्रयास करते हैं, निम्नलिखित InvalidCastException फेंक दिया जाता है:एक नालीबल <DateTime> नियंत्रण संपत्ति
'System.Nullable`1 [[System.DateTime, mscorlib, संस्करण = 2.0 करने के लिए' System.DateTime 'से अमान्य कलाकार .0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089]] '।
हम जो कर रहे हैं:
वस्तु संपत्ति:
private System.DateTime? _dateTimeReceived;
public System.DateTime? DateTimeReceived
{
get
{
return this._dateTimeReceived;
}
set
{
this._dateTimeReceived = value;
this.OnChanged("DateTimeReceived", value); //Implements INotifyPropertyChanged and fires PropertyChanged event
}
}
नियंत्रण संपत्ति: है
private System.DateTime? _value;
[System.ComponentModel.Category("Behavior")]
[System.ComponentModel.Description("The current date value for this control")]
public new System.DateTime? Value
{
get
{
return this._value;
}
set
{
this._value = value;
}
}
आवेदन में, यहाँ जहां अपवाद फेंक दिया जाता है:
this.dateReceived.DataBindings.Add("Value", this._object, "DateTimeReceived");
जैसा कि आप देख सकते हैं, ऑब्जेक्ट की संपत्ति (this._object.DateTimeReceived) एक सिस्टम है। डेटटाइम? प्रकार और नियंत्रण की संपत्ति (this.dateReceived.Value) एक सिस्टम है। डेटटाइम? प्रकार।
यह अमान्य कैस्टएक्सप्शन क्यों होगा? और हम इसे कैसे ठीक कर सकते हैं ताकि यह सही ढंग से बांध सके?
अद्यतन 2009-10-29 14:26 CDT:
यहाँ स्टैक ट्रेस है:
System.Convert.DefaultToType पर (IConvertible मूल्य, प्रकार TargetType, IFormatProvider प्रदाता) System.DateTime.System.IConvertible.ToType (प्रकार प्रकार, IFormatProvider प्रदाता)
पर
System.Convert.ChangeType पर (वस्तु मूल्य, प्रकार रूपांतरण प्रकार, IFormatProvider प्रदाता) 012,380, System.Windows.Forms.Binding.FormatObject (वस्तु मूल्य)
System.Windows.Forms.Binding.PushData (बूलियन बल)
पर सिस्टम पर System.Windows.Forms.Binding.UpdateIsBinding()
पर पर .Windows.Forms.Binding.CheckBinding()
System.Windows.Forms.Binding.SetListManager (bindingManagerBase bindingManagerBase)
System.Windows.Forms.ListManagerBindingsCollection.AddCore पर पर ( databinding बाइंडिंग)
System.Windows पर .Forms.BindingsCollection.Add (बाध्यकारी बाध्यकारी)
System.Wi पर ndows.Forms.BindingContext.UpdateBinding System.Windows.Forms.Binding.SetBindableComponent (IBindableComponent मूल्य)
System.Windows.Forms.ControlBindingsCollection.AddCore पर पर (BindingContext newBindingContext, बाइंडिंग बंधन)
(बाइंडिंग databinding)
सिस्टम.Windows.Forms.BindingsCollection.Add (बाध्यकारी बाध्यकारी)
सिस्टम.Windows.Forms.ControlBindingsCollection पर।जोड़ें System.Windows.Forms.ControlBindingsCollection.Add (स्ट्रिंग प्रॉपर्टी, वस्तु डेटा स्रोत, स्ट्रिंग पर
(स्ट्रिंग प्रॉपर्टी, वस्तु डेटा स्रोत, स्ट्रिंग DataMember, बूलियन formattingEnabled, DataSourceUpdateMode updateMode, nullValue, स्ट्रिंग formatString, IFormatProvider formatInfo वस्तु) DataMember)
आपके अपवाद के लिए पूर्ण स्टैक ट्रेस क्या है (कृपया वीएस डीबगिंग सेटिंग्स में "बस मेरा कोड" अक्षम करें, ताकि यह .NET Framework के लिए स्टैक फ्रेम को दिखा सके)? –