2012-05-01 2 views
1

Я сделал пользовательский ListView следующего учебника в этой ссылке http://www.coderzheaven.com/2012/03/23/how-to-create-a-custom-listbox-in-windows-phone-7/Получить текст из ListView

и моя потребность, я хочу, чтобы получить заголовок и подзаголовок каждой строки при нажатии на конкретную строке. Есть ли способ получить текст, не беря его из массива, из которого он поставляется.

+0

Эта ссылка является таким уродливым способом реализации этого ... Почему бы просто не создать объект с классом и создать список/ObservableCollection объекта? Затем вы можете просто использовать простую привязку и легко получить нужный элемент через SelectedItem. –

+0

Я новичок в телефоне Windows, вы можете предоставить мне ссылку или какой-то учебник по этому вопросу. Было бы очень полезно. – user1293519

ответ

1
public class Account 
{ 
    public string Title { get; set; } 
    public string SubTitle { get; set; } 
    public string ImageUrl { get; set; } 
} 

MainPage.xaml

<ListBox Margin="12,75,12,0" Name="L1" SelectionChanged="ListBox_SelectionChanged"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <StackPanel Margin="0,0,0,17" Width="432" Height="78"> 
           <TextBlock TextWrapping="Wrap" Text="{Binding Title}" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
           <TextBlock TextWrapping="Wrap" Text="{Binding SubTitle}" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
          </StackPanel> 
         </DataTemplate> 
</ListBox.ItemTemplate> 
       </ListBox> 

MainPage.xaml.cs 

общественного ObservableCollection MyAccounts {получить; задавать; }

public MainPage() 
{ 
    Loaded += MainPageLoaded; 
} 
// Load data for the ViewModel Items 
     private void MainPageLoaded(object sender, RoutedEventArgs e) 
     { 
       MyAccounts = GenerateAccounts(); //populate your list 
       L1.ItemsSource = MyAccounts; 

     } 

     private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
       var lb = (ListBox)sender; 
       if (lb.SelectedIndex == -1)return; 
       var account = (Account)sender.SelectedItem; 
       //get properties from Account npw. 
       lb.SelectedIndex = -1; 
     } 
} 
+1

О, и вот хороший пример: http://www.windowsphonegeek.com/tips/WP7-ListBox-SelectedItem –

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