从XAML中的父DataContext将CallMethodAction中的TargetObject设置为ViewModel - c#

我正在创建一个UWP应用,到目前为止,我一直在使用CallMethodAction从ViewModel调用方法,并且工作正常。

但是现在,我正在尝试对ListView中的某些按钮使用相同的方法,但是当我单击按钮时什么也没有发生。 XAML代码是:

<Page.DataContext>
    <vm:RoomPageViewModel x:Name="ViewModel" />
</Page.DataContext>

<ListView x:Name="ActuatorListView"
          ItemsSource="{x:Bind ViewModel.Room.Actuators}">
  <ListView.ItemTemplate>
     <DataTemplate x:DataType="data:Actuator">
        <Button x:Name="OnButton" Content="On">
           <Interactivity:Interaction.Behaviors>
                  <Core:EventTriggerBehavior 
                           EventName="Click" 
                           SourceObject="{Binding ElementName=OnButton}">
                     <Core:CallMethodAction 
                        MethodName="OnButton_Click"
                        TargetObject="{Binding ElementName=ViewModel, Mode=OneWay}" />
                  </Core:EventTriggerBehavior>
               </Interactivity:Interaction.Behaviors>
            </Button>                            
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我尝试了几种访问父级DataContext的方法,但发现没有任何一种方法。

参考方案

因为您的视图模型实际上不是元素,所以不能将其与ElementName结合使用。

正确的解决方案是为页面命名(x:Name="Page")并绑定到其DataContext

<Core:CallMethodAction 
   MethodName="OnButton_Click"
   TargetObject="{Binding Path=DataContext, ElementName=Page, Mode=OneWay}" />

jQuery不起作用 - php

我正在使用带有ajax的jquery。有时,给出错误$未定义。这是我的代码:<script language="javascript" type="text/javascript"> var base_path="<? echo $this->baseUrl().'/…

无法解析Json响应 - php

我正在尝试解析一个包含产品类别的JSON文件,然后解析这些类别中的产品,并在div中显示它们。我的问题:虽然我可以获取类别,但我不知道如何索取产品(并将它们显示在类别下)。我的剧本:<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> …

<T>如何在这里处理String和Integer - java

我不明白T如何使用Integer和String。如此处显示功能中所示,T同时处理整数和字符串。该代码如何工作?class firstBase { <T> void display(T give_num, T give_String) { System.out.println("The given number is = " +…

如何以编程方式扩展Jquery Slider Panel? - c#

我有用于登录的JQuery Silder面板|注册选项。供参考,我已包含此滑块Jquery Login | Register Slider Panel的演示实际的问题是,当位于“文字”控件中的“登录”部分或“注册新帐户”部分中有值时,如何以编程方式扩展此滑块。为了理解这个问题,我把我的设计代码。 <asp:Panel ID="Panel_Lo…

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…