0

次の階層からボタンがクリックされたときに、各 listboxitem テンプレート コントロール (画像と 4 つのテキスト ブロック コントロール) のデータにアクセスしたいと考えています。

 <ListBox x:Name="lstBoxNearbyPlaces" ItemsSource="{Binding Items}" Grid.Row="2" Margin="0,10,0,0"  >
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Button Width="400" Height="150" Name="btnPlace" Click="btnPlace_Click_1">
                                    <Button.Content>                                            
                                        <StackPanel Orientation="Horizontal" >                                              
                                            <Image  Name="ImgPlace"  Source="{Binding PlaceIconURL}" Width="50" />
                                            <TextBlock Name="lblPlaceLat" Text="{Binding PlaceLatLocation}" Visibility="Collapsed"/>
                                            <TextBlock Name="lblPlaceLng" Text="{Binding PlaceLongLocation}" Visibility="Collapsed"/>
                                            <StackPanel Width="350" >                                                    
                                                <TextBlock FontSize="20"   Text="{Binding PlaceName}" Name="txtAddress" TextWrapping="Wrap" ></TextBlock>                                        
                                                <TextBlock FontSize="20" Text="{Binding PlaceVicinity}" Name="txtLocation" TextWrapping="Wrap"></TextBlock>
                                            <Line MinHeight="5"></Line>
                                            </StackPanel>
                                        </StackPanel>
                                    </Button.Content>
                                </Button>
                            </DataTemplate>

                        </ListBox.ItemTemplate>
                    </ListBox>

ボタンクリックイベントが発生したときに、ここですべてのコントロールのデータを取得または読み取ることは可能ですか?

4

1 に答える 1

1

ListBox_SelectionChanged でバインディング オブジェクトを選択済みアイテムとして取得できます。

private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
      ItemModel model= listBox.SelectedItem as ItemModel ;
    }

または Buttonclick イベントでは、次のように取得できます

 private void Button_Click(object sender, RoutedEventArgs e)
    {
        Button button = sender as Button;
        ItemModel model = button.DataContext as ItemModel;
    }

ここでモデルは、そのテンプレートにバインドしたオブジェクトです。

于 2013-02-25T04:33:10.277 に答える