- - PR -
bindingについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-16 13:52
VB.NETでデータソースとテキストボックスを以下のようにbindingしています。
(数値入力で、列aに"000001"のような書式にしています。) Private Sub DecimalToUserFormat(ByVal sender As Object, ByVal cevent As _ ConvertEventArgs) If Not cevent.DesiredType Is GetType(String) Then Exit Sub End If cevent.Value = CDec(cevent.Value).ToString("000000") End Sub Private Sub CurrencyStringToDecimal(ByVal sender As Object, ByVal cevent As _ ConvertEventArgs) If Not cevent.DesiredType Is GetType(Decimal) Then Exit Sub End If cevent.Value = Decimal.Parse(cevent.Value.ToString, "000000", Nothing) End Sub Private Sub BindControl() ' Creates the binding first. The OrderAmount is a Decimal type. Dim b As Binding = New Binding _ ("Text", ds, "Table1") ' Add the delegates to the event AddHandler b.Format, AddressOf DecimalToUserFormat AddHandler b.Parse, AddressOf CurrencyStringToDecimal a.DataBindings.Add(b) End Sub この状態で、dsのTable1に対して、 Me.BindingContext(Ds, "Table1").EndCurrentEdit() Me.BindingContext(Ds, "Table1").AddNew() を実行し、新規レコードの追加を行おうとすると、 「列XXXに Null を使用することはできません。」 というメッセージがでて、追加できません。 確かに、列XXXは、Nullを許可しないのですが、 AddHandler b.Format, AddressOf DecimalToUserFormat AddHandler b.Parse, AddressOf CurrencyStringToDecimal をはずすと、エラーは出ません。 ようするに、バインドしたテキストボックスに書式を適用させ、 新規レコード追加の際に、エラーが出ないようにしたいのですが、 お分かりの方いらっしゃったら、ご教授お願いいたします。 |
1