windows phone listbox的点击事件

来源:互联网 发布:android 数据库路径 编辑:程序博客网 时间:2024/06/06 18:11

前台

复制代码
<ListBox x:Name="listbox1" Margin="6"><ListBox.ItemTemplate><DataTemplate><Grid Margin="15" Tag="{Binding ImageID}" Tap="Post_Click"><StackPanel Orientation="Horizontal"><Image Source="{Binding Image}" Width="150" Height="120" Stretch="Fill"/><TextBlock Text="{Binding ImageName}" FontSize="30" TextWrapping="Wrap" Width="300"/></StackPanel></Grid></DataTemplate></ListBox.ItemTemplate></ListBox>
复制代码

 

后台

复制代码
private T FindFirstElementInVisualTree<T>(DependencyObject parentElement) where T : DependencyObject{var count = VisualTreeHelper.GetChildrenCount(parentElement);if (count == 0)return null;for (int i = 0; i < count; i++){var child = VisualTreeHelper.GetChild(parentElement, i);if (child != null && child is T){return (T)child;}else{var result = FindFirstElementInVisualTree<T>(child);if (result != null)return result;}}return null;}
复制代码

需要绑定

复制代码
private void Post_Click(object sender, System.Windows.Input.GestureEventArgs e){var selectedIndex = listbox1.SelectedIndex;ListBoxItem item = listbox1.ItemContainerGenerator.ContainerFromIndex(selectedIndex) as ListBoxItem;StackPanel border = FindFirstElementInVisualTree<StackPanel>(item);Image img = FindFirstElementInVisualTree<Image>(item);TextBlock txtBlock = FindFirstElementInVisualTree<TextBlock>(item);MessageBox.Show(txtBlock.Text.ToString());}
复制代码

 

原创粉丝点击