为什么我的事件没有在viewmodel中看到它

时间:2015-03-13 20:04:54

标签: wpf vb.net entity-framework mvvm

我有一个使用mvvm的多项目wpf应用程序。应用程序使用实体框架来派生其数据,数据模型是使用Devart的Entity Developer构建的,各个实体都实现了INotifyPropertyChanged和Changing。

对于其中一个实体在DataModel项目中,我创建了一个具有特定事件的分部类;

Partial Public Class KeyNumber


    Public Event Dirty()


    Private Sub OnInvoiceNumberChanged()
        IsDirty = True
        RaiseEvent Dirty()
    End Sub

在引用KeyNumber类的单独项目的viewmodel中,我有以下内容;

Public Class KeyNumberViewModel
Inherits ViewModelBase


Private _isDirty As Boolean
Private _keyNumbers As IList(Of KeyNumber)
Private ReadOnly _entities As EntityClientCache
Private WithEvents kn As KeyNumber


''' <summary>
''' Initializes a new instance of the <see cref="KeyNumberViewModel"/> class.
''' </summary>
Public Sub New(ByVal data As FtProContext)
    kn = New KeyNumber
    _entities = data.ClientCache
    _keyNumbers = data.KeyNumbersList
    DisplayName = "Key Numbers"
    'AddHandler kn.Dirty,AddressOf KeyNumberNotification

End Sub

Private Sub KeyNumberNotification() Handles kn.Dirty

    MessageBox.Show("Hi")
End Sub

我在KeyNumber类中的Dirty事件被引发的位置放置了一个断点,每当我在View中更改一个Invonive数字时,KeyNumberViewModel作为其datacontext被命中,但由于某种原因我的测试我放在应该处理Dirty事件的viewmodel处理程序中的消息永远不会被触发。

所有代码编译都没有明确的错误,我可以回复,这表明这是我的一个更基本的错误。

我欢迎一些指示或解释,说明我做错了什么。

由于

0 个答案:

没有答案