1

ユーザー入力の保存、削除、キャンセルを行うためのボタンがいくつかあるWPFフォームがあります。ユーザーがキャンセルボタンをクリックするたびにポップアップメッセージが表示されるような機能を追加しようとしていました。代わりに、コントローラーで例外をスローします。

"The call is ambiguous between the following methods or properties"

これが私の見解です:

 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,0,0,0">                        
    <Button Name="DeleteButton" Command="{Binding DeleteCommand}" CommandParameter="{Binding Path=SelectedStory}"  Cursor="Hand" Height="25" IsEnabled="{Binding CanDelete}" Margin="5 0 0 0">Delete</Button>
    <Button Name="SubmitButton" Command="{Binding SubmitCommand}" CommandParameter="{Binding Path=SelectedStory}"  Cursor="Hand" Height="25"  Margin="5 0 0 0">Submit</Button>
    <Button Name="CancelButton" Command="{Binding CloseCommand}" CommandParameter="{Binding Path=SelectedStory}"  Cursor="Hand" Height="25" Margin="5 0 0 0" >Cancel</Button>
 </StackPanel>

私のコントローラーコード:

    public MetadataController(IGatewayService gateway, IEventAggregator eventAggregator, IDialogService dialog)
    {
        this.gateway = gateway;
        this.eventAggregator = eventAggregator;
        this.dialog = dialog;

        // commands            
        this.CloseCommand = new DelegateCommand<StoryItem>(this.Close);//here i got the exception throwing "the call is ambiguous between the following methods or properties"
        this.DeleteCommand = new DelegateCommand<StoryItem>(this.Delete);
        this.SubmitCommand = new DelegateCommand<StoryItem>(this.Submit, this.HasFieldsRequiredBeforeSubmit);

        this.eventAggregator.GetEvent<StorySelectedEvent>().Subscribe(OnStorySelected);
    }

    private void Close(StoryItem selsectedStory)//when i click my close button its not calling this method at all.
    {
        bool isConfirmed = this.dialog.ShowConfirmation("Are you sure you want to close?");
    }

    private void Delete(StoryItem selectedStory)
    {
        bool isConfirmed = this.dialog.ShowConfirmation("Are you sure you want to permanently delete ?");

        if (isConfirmed)
        {
            this.gateway.DeleteStoryItem(selectedStory);

            this.eventAggregator.GetEvent<CommandCompletedEvent>().Publish(CommandTypes.MetadataEntry);
        }
    }
4

2 に答える 2

2

発生している例外は、呼び出そうとしているメソッド/プロパティにアクセスする方法がないことを示しています。Closeおそらく、またはCloseCommandと呼ばれ、競合を引き起こしている他のメソッドまたはプロパティがありますか?

于 2012-05-04T00:02:44.707 に答える
0

例外の理由は、私はすでにメソッドを持っていて、それを作成しようとしていたので、そのエラーがスローされます。助けてくれてありがとう。

于 2012-05-04T00:41:49.167 に答える