2015-05-27 2 views
2

Привет всем Я работаю на Windows Phone приложение, и я изо всех сил, чтобы получить доступ к внутреннему элементу списка, когда пользователь Нажмите на конкретный элемент в ListBox я получаю выход как этотНайти значение в списке с linq?

enter image description here

, например: предположим, пользователь будет нажимать [0] индексный элемент, который я хочу получить [0] 1, 1 480, [2] 749, [3] 270 и когда пользователь коснется 1 элемент индекса, я хочу получить значение как [0] 1, 1 810, [2] 1080, [3] 271

интерфейс

<phone:LongListSelector Name="list_professions" 
         LayoutMode="List" 
         Tap="list_professions_Tap" 
         Padding="5,15,5,15" 
         IsGroupingEnabled="True"> 
    </phone:LongListSelector> 

Json класс и переменные

private class RootObject 
    { 
     public string flag { get; set; } 
     public string message { get; set; } 
     public Result result { get; set; } 
    } 
    private class Result 
    { 
     public List<List<string>> Professions { get; set; } 
    } 

показа данные на Listbox

void onResponse(object sender, DownloadStringCompletedEventArgs e) 
    { 
     try 
     { 
      onLoadingStope(sender, e); 
      var rootObject = JsonConvert.DeserializeObject<RootObject>(e.Result); 

      string flag = rootObject.flag; 
      string msg = rootObject.message; 
      if (flag.Equals("1")) 
      { 

       foreach (var temp in rootObject.result.Professions[0]) 
       { 

        profess.Add(new Result() { Professions = rootObject.result.Professions }); 
        var flattenProfessions = rootObject.result.Professions.SelectMany(x => x).ToList(); 
        list_professions.ItemsSource = rootObject.result.Professions; 

       } 
      } 
      else 
      { 
       Console.WriteLine("Error message - " + msg); 
       MessageBox.Show("Oops! response : " + msg); 
      } 
     } 
     catch(Exception ex) 
     { 

     } 


    } 

и List Нажмите Здесь я облицовочная проблему доступ к сгруппированному элементу, как получить доступ сгруппированного элемента, когда пользователь будет нажать на пункт

private void list_professions_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
    { 


    } 
+6

Что вы пробовали? Если вы не продемонстрируете, что вы приложили какое-то усилие, чтобы решить это самостоятельно, вы не получите очень хороших ответов здесь, на SO. –

+0

Здравствуйте, Питер Лиллевольд, я хочу получить доступ к внутреннему элементу списка на основе индекса внешнего списка – user

+1

Вопрос был: показать вашу попытку; и что не работает. –

ответ

0

Нельзя использовать событие Tap события LongListSelector, но вместо этого use a DataTemplate и use the Tap event of the elements в этом случае. Что-то вроде этого:

<phone:PhoneApplicationPage.Resources> 
    <DataTemplate x:Key="TileDataTemplate"> 
     <Grid Background="{StaticResource TransparentBrush}" 
       Margin="0, 0, 0, 12" Height="60"> 
      <TextBlock Text="{Binding Name}" Margin="60, 10, 0, 0" FontSize="24" Height="60"> 
      </TextBlock> 
      <Image x:Name="GetName" Tap="GetName_Tap" Grid.Column="0" Source="/Assets/AppBar/Delete.png" Height="40" Width="40" 
          Margin="0, 6, 0, 5" HorizontalAlignment="Right" VerticalAlignment="Top" /> 
     </Grid> 
    </DataTemplate> 
</phone:PhoneApplicationPage.Resources> 

Обратите внимание на Tap на Image.

<phone:LongListSelector 
        SelectionChanged="MainLongListSelector_SelectionChanged" 
        Margin="10,6,0,0" 
        ItemsSource="{Binding Staff.Items}" 
        LayoutMode="Grid" 
        GridCellSize="400,80" 
        ItemTemplate="{StaticResource TileDataTemplate}" 
        /> 

Вот как получить DataContext события:

private void GetName_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    var element = (FrameworkElement)sender; 
    StaffData data = (StaffData)element.DataContext; 
    MessageBox.Show(data.Name); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^