1

複数のモジュール(ユーザー、プロジェクト、支払い、請求書など)を使用してアプリケーションを開発しています。これらの各モジュールには、App.Controlsという名前の共有コントロールを含む共通モジュールへの参照があります。App.Controlsには、OK / Saveボタンといくつかの一般的な機能を備えた単なるシェルビューである、OKSaveDialogViewと呼ばれるビューが含まれています。OKSaveDialogViewは、再利用性のために適切なコンテンツを動的にロードします。残念ながら、App.Controlsパーツがカタログに複数回読み込まれているため、エラーが発生します。

1)制約に一致する複数のエクスポートが見つかりました'((exportDefinition.ContractName == "App.Controls.ViewModels.OkCancelDialogViewModel")

これがどのように起こっているのか、どこからデバッグを始めればよいのかわかりません。誰かが私を正しい方向に向けることができますか?

以下は、プロジェクトからのいくつかのコードの抜粋です。

OKCaneclDialogView.Xaml.VB

<Export("OkCancelDialogView")> _
<PartCreationPolicy(CreationPolicy.NonShared)> _
Partial Public Class OkCancelDialogView
    Inherits UserControl

    Public Sub New()
        InitializeComponent()
    End Sub

    <Import()> _
    Public Property ViewModel() As OkCancelDialogViewModel
        Get
            Return Me.DataContext
        End Get
        Set(value As OkCancelDialogViewModel)
            Me.DataContext = value
        End Set
    End Property
End Class

OkCancelDialoViewModel.vb

<Export()> _
<PartCreationPolicy(CreationPolicy.NonShared)> _
Public Class OkCancelDialogViewModel
    Inherits ViewModelBase
    Implements INavigationAware
    Implements IPartImportsSatisfiedNotification
    'Implements IOkCancelDialogViewModel


    'Services
    'Private ReadOnly regionManager As IRegionManager
    Private WithEvents userService As IUserDataService

    Private navigationJournal As IRegionNavigationJournal

    Private Const UserIdKey As String = "PrimaryId"
    Private Const SecondaryIdKey As String = "SecondaryId"
    Private Const DialogContentKey As String = "DialogContent"

    'DialogViewModelDictionary
    Private DialogViewModelDictionary As DialogViewModelDictionaries

    Public Sub New()
        Me.New(New RegionManager)
    End Sub

    <ImportingConstructor()> _
    Public Sub New(regionManager As IRegionManager)
        'Setup the global region manager
        Me.RegionManager = regionManager

        'Setup the locally scoped region manager
        Me.LocalRegionManager = regionManager.CreateRegionManager

        Me.synchronizationContext = If(synchronizationContext.Current, New SynchronizationContext())

        'Setup commands
        Me._closeCommand = New DelegateCommand(AddressOf OnClose)

        Me._okSaveCommand = New DelegateCommand(AddressOf Me.OnOkSave, AddressOf Me.CanClickOkSave)
        Me._CancelCommand = New DelegateCommand(AddressOf Me.OnCancel, AddressOf Me.CanClickCancel)


        DialogViewModelDictionary = New DialogViewModelDictionaries
        DialogViewModelDictionary.AddDialogViewModel("EditAddressDialogView", New EditAddressDialogViewModel())
    End Sub
4

0 に答える 0