首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

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

2013-02-05 
Winphone开发,长按listBox(hold)事件,如何获取slectIndex?Winphone开发,长按listBox(hold)事件,如何获取sl

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;
}
在后台这么读取它。

热点排行