Click事件的XAML参数

Tim*_*len 4 c# events xaml

我有以下XAML:

<Button Name="btnJeans" Click="btnJeans_Click" Padding="-1" >
    <StackPanel Orientation="Horizontal" Margin="0,0,0,17" Name="jeansItem">
        <!--Replace rectangle with image-->
        <Image Height="119" Width="82" Source="{Binding Image}" Margin="12,0,9,0"/>
        <StackPanel Width="311">                                    
            <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
            <TextBlock Text="{Binding Price}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
        </StackPanel>
    </StackPanel>
</Button>
Run Code Online (Sandbox Code Playgroud)

但是,btnJeans_Click需要传递"{Binding Name}"作为参数.

我该怎么做?我正在为Windows Phone 7开发.

jk.*_*jk. 5

PC上的替代方案是从click事件args获取DataContext,例如

private void Button_Click(object sender, RoutedEventArgs e)
    {
      var record = ((Button)e.OriginalSource).DataContext;
      MessageBox.Show("Do something with " + record.ToString()); 
    }
Run Code Online (Sandbox Code Playgroud)

这可能也适用于手机?


And*_*wry 3

我认为您需要使用命令而不是按钮单击事件来执行此操作,以便您可以执行以下操作:

<Button Name="btnJeans" Command="{Binding Path=ButtonClickCommand}" CommandParameter="{Binding Name}">
    ...
</Button>
Run Code Online (Sandbox Code Playgroud)

然后,您需要将 ButtonClickCommand 公开为 ICommand 对象。

如何执行此操作取决于应用程序其余部分的结构。例如使用 MVVM 模式等。