2013-12-22 3 views
0

Я использую LongListSelector для WP8-приложения. Я искал несколько веб-сайтов, но не нашел, был ли способ узнать индекс элемента, который был записан пользователем в списке. Если у кого-то есть идея, было бы хорошо. БлагодаряПолучить выделенный индекс в LongListSelector

`

 <phone:LongListSelector x:Name="ListeNotes" Height="535" Width="426" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="36" Margin="54,0,0,0"> 

      <phone:LongListSelector.ItemTemplate> 
       <DataTemplate> 

        <TextBlock Text="{Binding Titre}"/> 

       </DataTemplate> 

      </phone:LongListSelector.ItemTemplate> 

     </phone:LongListSelector> 

`

+0

Да, но в каком контексте? Отправьте свой код. – McGarnagle

+0

Не понял вопрос ... Это просто, когда пользователь выбирает элемент, он открывает вторую страницу для редактирования элемента. Это приложение для заметок. –

+0

Какой код? У меня ничего нет в VB, я не знаю, как это сделать ... Я просто знаю, что мне нужно поймать его на SelectionChanged (отправитель As Object, e As SelectionChangedEventArgs) Обрабатывает ListeNotes.SelectionChanged событие –

ответ

1

Я бы создать в код-beind или ViewModel (в зависимости от того, что вы используете), общая переменная

Public Int32 itemSelectedIndex {get;set;} //This is a public variable, therefore add it inside your class 

и привязать его до SelectedIndex следующим образом:

<phone:LongListSelector x:Name="ListeNotes" Height="535" Width="426" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="36" Margin="54,0,0,0" SelectedIndex ="{Binding itemSelectedIndex, UpdateSourceTrigger = PropertyChanged}"> 

не забудьте добавить ссылку DataContext в коде

Public void MainWindow() 
{ 
InitializeComponents(); 
this.DataContext = this;//this makes sure that you can bind public varibles to XAML 
} 

После этого вы просто ссылок itemSelectedIndex где-нибудь в вашем коде, и он будет возвращать выбранное значение (например, System.Windows.MessageBox.Show(itemSelectedIndex.ToString());

+0

Я положил первый код в моей MainPage, не работал (я думаю, что это C#, и инструменты преобразования, которые я нашел, не работают ...). Второй вопрос: я должен положить его в свой основной класс? И второй код, я положил его в XAML-код, но где? Вы можете увидеть мой LLS-код в главной теме. –

+0

Я только что отредактировал свой ответ. Надеюсь, вы сможете заставить его работать на этот раз! :) –

+0

ОК, это C#, но мне удалось поместить его в VB. Таким образом, проблема теперь заключается в том, что элемент SelectedIndex не распознается или недоступен. 'И' Свойство SelectedIndex не найдено в типе LongListSelector.' –

0

В обработчике:

SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles ListeNotes.SelectionChanged` 

"отправитель" является ListBox. Так что все, что вам нужно сделать, это отправить «отправитель» на ListBox и использовать его свойство SelectedIndex.

Dim listBox As ListBox = CType(sender, ListBox) 
Dim tappedIndex = listBox.SelectedIndex 
+0

Спасибо за ответ. к сожалению, это не сработает, как я думал :(Я работаю с LongListSelector, а не с ListBox. Это просто показывает мне это сообщение об ошибке: «Невозможно наложить объект типа« Microsoft.Phone.Controls.LongListSelector »на тип 'System.Windows.Controls.ListBox'.' –

+0

И LongListSelector не имеет выбранного свойства индекса, насколько я знаю (и Visual Studio). –

0

вы можете получить его с помощью

Dim num As Integer = (sender as LonglistSelector).Datasource.IndexOf((sender as LonglistSelector).SelectedItem) 
+0

Мне пришлось отредактировать его, чтобы он «работал» и удалялся как LongListSelector . дважды Но я получаю эту ошибку: библиотека «Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSetComplex» не определен и библиотека «Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet» не определен –

+0

, для которого.. содержимое этой библиотеки необходимо – techloverr

0

решение не было найдено ... На самом деле я просто сказал, что пользователь не может иметь в два раза один и тот же объект Note, и я использую IndexOf метод в моем списке (из примечания), чтобы получить индекс SelectedItem в LongListSelector.

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