Wp ListView点击事件
wp开发中,listView 控件怎么设置item的点击事件,怎么获取点击的item的行号,求给个例子看看,新手,求照顾。。。。
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
方法很多的。
比如把item绑定到contro template 里controll的Tag上,就可以从里面定义的tap事件里拿sender(也就是control)的tag, 再cast回item。 知道是哪个item怎么都好办
Quote***链接停止解析***
方法很多的。
比如把item绑定到contro template 里controll的Tag上,就可以从里面定义的tap事件里拿sender( ...
是绑定在datatemplate上面的。。。。怎么弄{:6_246:}
Quote***链接停止解析***
一般,所点击的item就是ItemsSource列表里的item实例
ListViewItem item = sightList.SelectedItem as ListViewItem;
SightInfo str = (SightInfo)item.Content;
为什么这么写,我获取的item总是空的。。。。该怎么写呢
Quote***链接停止解析***
ListViewItem item = sightList.SelectedItem as ListViewItem;
SightInfo str ...
你的数据源如果是绑定的,那么SelectedItem的类型就不是ListViewItem了,而是你绑定的数据的类型。
本帖最后由 qiqiminmin 于 2015-5-16 10:34 编辑
有两个方法
假设XAML
[mw_shl_code=xml,true]<ItemsControl Margin="5,5,5,2" ItemsSource="{Binding courlist}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Tag={Binding} Tapped="item_Tapped">
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
[/mw_shl_code]
【1】通过VisualTreeHelper
[mw_shl_code=csharp,true]private void item_Tapped(object sender, EventArgs e)
{
var grid = (sender as Grid);
var parent = VisualTreeHelper.GetParent(grid) as ContentPresenter;
var parent1 = VisualTreeHelper.GetParent(parent) as VirtualizingStackPanel; //这里取决于你的panel,也许是stackpanel,也学是wrappanel
int index = parent1.Children.IndexOf(parent);
}[/mw_shl_code]
【2】通过绑定的数据
[mw_shl_code=csharp,true]private void item_Tapped(object sender, EventArgs e)
{
var grid = (sender as Grid);
var data = grid.Tag as DataType;
int index = DataSourceList.IndexOf(data);
}[/mw_shl_code]
原理
【1】所有的listView, listbox,结构都是这样的, 可以称为itemscontrol,一般包含在ScrollView里面
---ScollView
|---- Stackpanel
|----ContentPresent
|-----DataTemplate (这里就是你弄的DataTemplate)
我们可以在DataTemplate里定义一个Event, 通过VirtualTreeHelp找到Stackpanel, 甚至ScrollView, 根据每个ContentPresent的ActualHeight,ActualWidth,可以得到在ScrollView中的offset,总之,这种方法是listview,listbox,itemsControl里的核武器,如果想实现一些UI特殊效果建议用这个,如果是用xamarin编程,你也只能用这个方法了,这个方法与代码结合最好,也最直观,也最容易出错,学习的时候很好用,不熟练不要用于产品。
【2】根据数据找到index是最稳妥的,因为如果你的数据全部都是绑定的话,根据数据源找到是第几行再准确不过了。