2013-12-22 80 views
0

我爲WP8應用程序使用LongListSelector。我在幾個網站上搜索,但沒有找到是否有方法知道用戶在列表中錄製的項目的索引。 如果有人有一個想法,這將是很好的。 感謝獲取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(sender As Object,e As SelectionChangedEventArgs)處理ListeNotes.SelectionChanged事件 –

回答

1

我會在代碼beind或視圖模型創建(取決於你在使用),公共變量

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}"> 

不要忘了在代碼後面加

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

之後的DataContext參考您只需引用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

而我的(和Visual Studio)知道的LongListSelector沒有選定的索引屬性。 –

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

得到它的解決方案沒有被發現... 其實我剛纔說的用戶不能有兩次同樣的注意對象,我使用indexOf方法在我的List(Of Note)中獲取LongListSelector中SelectedItem的索引。

相關問題