从绑定到我的XAML中的事件调用我的ViewModel中的命令?

时间:2013-01-17 14:49:56

标签: c# .net xaml mvvm mvvm-light

我目前正在编写Windows 8应用程序。我试图在我的ViewModel中调用一个方法。我希望在双击项目时调用此方法。我在我的XAML中定义了以下DataTemplate来执行此操作:

<DataTemplate x:Key="ItemTemplate">
                <StackPanel Orientation="Horizontal">
                    <Image Width="185" Height="185" Stretch="Fill" Source="{Binding Path=Image}" DoubleTapped="{Binding Path=MethodIWishToBindTo}" IsDoubleTapEnabled="True"  />
                    </StackPanel>
            </DataTemplate>

问题当然是我绑定到MethodIWishToBindTo的错误消息:

  

'DoubleTapped'的值无效。事件值必须是文本

我最好的解决方法是什么?我可以在代码隐藏中调用该方法,但是该方法在我的ViewModel "SelectedItemInList"中使用了一个属性,我认为不能从后面的代码中访问该属性。

有人能就这个问题向我提出一些建议吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Interactivity和自定义行为来触发事件。这是一个局部涵盖一个例子的帖子: MVVM-Light EventToCommand Behavior for CheckBox Checked/Unchecked in Silverlight

MVVM-Light肯定会让这更容易,但也可能没有。

以下是没有的例子:http://blog.roboblob.com/2010/01/26/binding-ui-events-from-view-to-commands-in-viewmodel-in-silverlight-4/