2012-05-01 5 views
1

からテキストを取得します。私は、このリンクでチュートリアル http://www.coderzheaven.com/2012/03/23/how-to-create-a-custom-listbox-in-windows-phone-7/リストビュー

次のカスタムリストビューを作り、私の必要性は、私は特定の行をクリックしたとき、各行のタイトルとサブタイトルを取得したいです。テキストが提供されている配列から取得せずにテキストを取得する方法はありますか?

+0

このリンクは、それを実装するそのような醜い方法です...クラスでオブジェクトを作成し、オブジェクトのList/ObservableCollectionを作成するだけではどうですか。次に、単純なバインディングを使用して、SelectedItemを使用して簡単に目的のアイテムを取得できます。 –

+0

私は窓の電話に新しいです、あなたは私にリンクまたはいくつかのチュートリアルを提供することができます。非常に役に立ちます。 – 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 –