WPF INotifyPropertyChanged不允许空值

时间:2013-12-12 15:59:31

标签: wpf datagrid

使用WPF和EF以及两者都是新的。我可能会使用错误的术语。

使用EF向导和代码生成器,我使用几个表设置EF,其中一个是查找表。

我设置了一个带有数据网格的表单,供用户编辑此查找表中的项目。我遇到的一个问题是用户可以编辑单元格,然后关闭表单,但单元格的编辑不会更新底层SQL数据库。我研究了INotifyPropertyChanged,它似乎就是我所需要的。

我将INotifyPropertyChanged实现到绑定到datagrid的类。在实现之前,datagrid显示所有空值。实现后,当读取第一个空值时,将显示一条消息,表明可空对象必须具有值。

代码:

    Public Property ProcedureName As String
    Get
        Return _ProcedureName
    End Get
    Set(value As String)
        _ProcedureName = value
        RaisePropertyChanged("ProcedureName")
    End Set
End Property
Private _ProcedureName As String

异常发生在“_ProcedureName = value”。

全班:

Imports System

导入System.Collections.ObjectModel

部分公共类tlkpProcedures_PartB     继承PropertyChangedBase     公共财产CPT为字符串         得到             返回_CPT         结束了         设置(值为字符串)             _CPT =值             RaisePropertyChanged( “CPT”)         结束集     结束财产     私有_CPT字符串     公共属性ProcedureName As String         得到             返回_ProcedureName         结束了         设置(值为字符串)             _ProcedureName = value             RaisePropertyChanged( “PROCEDURENAME”)         结束集     结束财产     Private _ProcedureName As String

Public Property BillingAmount As Nullable(Of Decimal)
    Get
        Return _BillingAmount
    End Get
    Set(value As Nullable(Of Decimal))
        _BillingAmount = value
        RaisePropertyChanged("BillingAmount")
    End Set
End Property
Private _BillingAmount As Decimal
Public Property UniqueID As Integer

Public Overridable Property tblBilling_PartB As ObservableCollection(Of tblBilling_PartB) = New ObservableCollection(Of tblBilling_PartB)

结束班

感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

我不擅长VB,但您似乎尝试将Nullablevalue As Nullable(Of Decimal))分配给不可为空(Private _BillingAmount As Decimal)。

您应该将value转换为Decimal或将_BillingAmount定义为Nullable(Of Decimal)