2011-02-01 8 views
0

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

<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> 

私は私のviewmodelでブレークポイントをヒットします。ただし、コマンドパラメータは常にnullです。私が間違っているアイデアは?事前に

感謝:)

答えて

1

これは古い記事なので、あなたはあなたの質問への答えを見つけたかもしれません。しかし、私が同じことをしようとしていたとき、私はこれに対する正確な答えを見出しておらず、他の人が同じものを探しているなら、これが助けてくれることを願っています。

あなたのEventToCommandからCommandParameter引数を削除し、これにそれを変更する必要があります。

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

あなたのViewModelや、あなたのRelayCommandを実装しているwhereeverこのような何かを見なければならないでしょうであなたのRelayCommand:

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

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

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

これが役に立ちます。

+0

あなたのEventNameはItemClickでなければなりません。 – talisker

関連する問題