如何知道在列表框中推送了哪个生成的按钮?

时间:2011-05-18 14:37:39

标签: c# xaml windows-phone-7

我正在开发一个WP7应用程序并且有一个带有生成按钮的列表框,这些按钮都应该导致特定的某个地方。我无法弄清楚如何知道在运行时推送了哪个按钮。该列表是从一组对象生成的,每个对象中都有一些属性。其中一个属性包含一个我需要知道的值,以便能够知道将用户发送到何处。

所以我想要的过程是用户点击列表框中的项目,将生成按钮的对象中的属性值传递给点击处理程序,该处理程序将用户发送到正确的位置。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

我假设您的ListBox包含一个ItemTemplate,它为绑定到列表的每个项构造一个Button?如果是这种情况,在Click事件处理程序中,您需要检查单击按钮的DataContext:

private void Button_Click(object sender, RoutedEventArgs e)
{
  Button btn = sender as Button;
  var myObject = btn.DataContext;
}

顺便说一句,如果您使用它进行导航,ListBox将无法为您提供非常好的性能。有关替代方案,请参阅以下博文:

http://www.scottlogic.co.uk/blog/colin/2011/04/a-fast-loading-windows-phone-7-navigationlist-control/

答案 1 :(得分:1)

检查sender事件处理程序的OnClick属性是否有点击处理。

或者,您可能希望处理ListBox的SelectionChanged事件,然后查询SelectedItem的内容。