0

GalasoftMVVMLightツールキットを使用してMVVMで1つのアプリケーションを作成しています。ただし、EventToCommandをTelerikコンテキストメニューで機能させることはできません。これが私のコードです:-

   <ListBox x:Name="lstPhotoAlbums" ItemsSource="{Binding AlbumsCollection}" 
                         Margin="3,0" Grid.Row="1" ItemsPanel="{StaticResource wrapPanelItemsPanelTemplate}"
                         ItemTemplate="{StaticResource ListboxPhotosDataTemplate}" 
                         ItemContainerStyle="{StaticResource ListboxPhotoAlbumsContainerStyle}" Height="500" HorizontalAlignment="Left" VerticalAlignment="Top" Width="178">
                        <telerik:RadContextMenu.ContextMenu>
                            <telerik:RadContextMenu x:Name="albumsCtxMenu">
                                <telerik:RadMenuItem Header="Delete" >
                                    <i:Interaction.Triggers>
                                        <i:EventTrigger EventName="Click">
                                            <GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding DeleteAlbumCommand}"  CommandParameter="{Binding SelectedItem, ElementName=lstPhotoAlbums}"/>
                                        </i:EventTrigger>
                                    </i:Interaction.Triggers>
                                </telerik:RadMenuItem>
                            </telerik:RadContextMenu>
                        </telerik:RadContextMenu.ContextMenu>
                    </ListBox>

ビューモデルのブレークポイントに到達しました。ただし、コマンドパラメータは常にnullです。私が間違っているアイデアはありますか?

前もって感謝します :)

4

1 に答える 1

1

これは古い投稿なので、あなたはあなたの質問に対する答えを見つけたかもしれません。しかし、私は同じことをしようとしていたので、これに対する正確な答えは見つかりませんでした。他の人が同じことを探しているなら、これが彼らに役立つことを願っています。

EventToCommandからCommandParameter引数を削除し、次のように変更する必要があります。

<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding DeleteAlbumCommand}" PassEventArgsToCommand="True" />

ViewModel内のRelayCommand、またはRelayCommandを実装している場所は、次のようになります。

RelayCommand<EventArgs> DeleteAlbumCommand = new RelayCommand<EventArgs>(CallbackMethod);

CallbackMethodは、次のようになります。

private void CallbackMethod(EventArgs eventArgs)
{
...
}

これがお役に立てば幸いです。

于 2011-08-03T08:07:43.247 に答える