如何在按钮中传递参数并在后面的代码中获取值,根据windows phone 7中的参数值重定向到另一个页面?

Xia*_*Han 4 parameters button commandparameter windows-phone-7

我在想如果windows phone 7按钮事件类似于使用C#的ASP.NET开发,类似于按钮,我在XAML中将值设置为commandparameter,在后面的代码中,我得到命令参数并重定向页面.

我没有找到任何关于按钮事件处理的好例子,有什么建议吗?

谢谢.

小智 11

对于xaml:

<Button Tag="pageAddress" Click="Button_Click" />
Run Code Online (Sandbox Code Playgroud)

然后是代码隐藏:

private void Button_Click(object sender, RoutedEventArgs e)
{
     Button _button = (Button)sender;
     NavigationService.Navigate(new System.Uri(_button.Tag.ToString()));
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢您的回复.使用Tag属性和CommandParameter属性有什么区别?我想我可以做Tag ="{Binding Title}"和CommandParameter ="{Binding Title}"一样吗? (2认同)

Edw*_*ard 7

我建议你使用你提到的命令参数.所以在你的xaml做这样的事情:

<Button x:name="myButton" CommandParameter="{Binding Title}" Click="myButton_Click"/>
Run Code Online (Sandbox Code Playgroud)

并在您的C#代码中这样:

private void myButton_Click(object sender, RoutedEventArgs e)
{
    Button _myButton = (Button)sender;
    string value = _myButton.CommandParameter.ToString();
}
Run Code Online (Sandbox Code Playgroud)

真的,这与Teemu的答案非常相似,虽然我必须承认我之前没有使用过Tag 元素.根据MSDN 上的文档,Tag元素应该可以很好地工作,因为它可以存储您可以在代码后面(或viewmodel)访问的自定义信息.