2017-07-31 20 views
1

データをバインドするリストボックスがあります。選択したリストアイテムの名前と年齢を次のページにあるテキストブロックに表示します。リストボックスを選択してテキストブロックに表示する方法

XAMLは:

<ListBox x:Name="listBoxobj" Background="Transparent" Height="388" Margin="22,0,0,0" SelectionChanged="listBoxobj_SelectionChanged"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <!--<Border BorderBrush="DarkGreen" BorderThickness="4">--> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="auto"/> 
          <RowDefinition Height="auto"/> 
         </Grid.RowDefinitions> 
         <TextBlock x:Name="txtName1" 
            Text="{Binding Name}" 
            Grid.Row="0" 
            Width="400" 
            Height="40" 
            Foreground="White" 
            FontSize="20" 
            Margin="8,0,-48,0"/> 
         <TextBlock x:Name="Age1" 
            Text="{Binding Age}" 
            Grid.Row="1" 
            Width="400" 
            Height="40" 
            Foreground="White" 
            FontSize="18" 
            Margin="8,0,-48,0"/> 
        </Grid> 
       <!--</Border>--> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

私は

private void listBoxobj_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    {   
     object person = listBoxobj.SelectedItem;   
     Frame.Navigate(typeof(Page2), person);   
    } 

、この方法でやってみました。しかし私は1つのTextBlockに名前を表示するようにNavigationEventArgs eから値を取得する方法を理解していませんおよびAgeを別のtextBlockに追加します。
データはこのを通じてバインドさばかります。..

ObservableCollection<MyData> Details = new ObservableCollection<MyData>(); 
     Details.Add(new MyData() { LineOne = "Teena", LineTwo = "20" }); 
     Details.Add(new MyData() { LineOne = "Riya", LineTwo = "21" }); 
     Details.Add(new MyData() { LineOne = "Priya", LineTwo = "22" }); 
     Details.Add(new MyData() { LineOne = "kila", LineTwo = "23" }); 
     this.listBoxobj.ItemsSource = Details; 
+1

トリガー、

private void listBoxobj_SelectionChanged(object sender, SelectionChangedEventArgs e) { MyData list_item = listBoxobj.SelectedItem as MyData; Frame.Navigate(typeof(Page2), list_item); } 

し、次のページで、答えを見つけましたイベントを変更し、テキストブロックテキストを引数で更新します。 – VenkyDhana

+0

Rachel、 いくつかのデータソースでListBoxをバインドしましたか? (自分のコードから)私には、リストボックスは空です。 私は正しいですか? –

+0

はい、リストボックスのデータはデータバインディングによって表示されます。 – Rachel

答えて

0

私は、項目を選択し、このようにパラメータを導出

protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     textBlock1.Text = ((Appbar_Sample.MyData)e.Parameter).LineOne; 
     textBlock2.Text = ((Appbar_Sample.MyData)e.Parameter).LineTwo; 
    } 
関連する問題