当前位置: 代码迷 >> Windows Mobile >> Winphone开发,长按listBox(hold)事件,怎么获取slectIndex
  详细解决方案

Winphone开发,长按listBox(hold)事件,怎么获取slectIndex

热度:6897   发布时间:2013-02-26 00:00:00.0
Winphone开发,长按listBox(hold)事件,如何获取slectIndex?
Winphone开发,长按listBox(hold)事件,如何获取slectIndex?或者说是item的序号。在网上找的方法有问题。
private void listBox1_Hold(object sender, Microsoft.Phone.Controls.GestureEventArgs e)
        {
            try
            {
                var holdItem = (sender as Grid).DataContext;
                int i = 0;

                foreach (var item in listBox1.Items)
                {
                    if (item == holdItem)
                        break;
                    MessageBox.Show(item.ToString());
                    i++;
                }
                //Debug.WriteLine("hold:" + i);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

------解决方案--------------------------------------------------------
<DataTemplate x:Key="DataTemplate">
<Grid Width="432">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu IsZoomEnabled="true">
<toolkit:MenuItem DataContext="{Binding}" Header="{Binding Localizedresources.action_delete, Source={StaticResource LocalizedStrings}}"  Click="Delete"/></toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>

</Grid>
</DataTemplate>
首先你要在的lisbox的ItemTemplate中添加上文的红色代码 
DataContext="{Binding}" 这个就是你要的对象。


后台 

private void Delete(object sender, RoutedEventArgs e)
{
    var menuItem = (MenuItem)sender; 
    menuItem.DataContext;
}
在后台这么读取它。
  相关解决方案