Как получить заголовок в форме списка ListBox?

1

Когда я нажимаю на элемент listBox, я получаю SubItem в событии selectionChanged. Мне также нужно получить название. Как я могу это достичь?

public class Data
{
    public string Title { get; set; }
    public List<SubItem> SubItems { get; set; }

    public Data()
    {
        SubItems = new List<SubItem>();   
    }    
}

<phone:LongListSelector ItemsSource="{Binding DataCollection}" Grid.Row="0">
    <phone:LongListSelector.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Title}" Padding="5" />
                    <TextBlock Text="{Binding ImageSource}" Padding="5"/>
                </StackPanel>
                <ListBox ItemsSource="{Binding SubItems}" SelectionChanged="ListBox_SelectionChanged">
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Vertical"/>
                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>
                    <ListBox.ItemTemplate>
                        <DataTemplate>                                   
                            <TextBlock Text="{Binding SubItemTitle}" Margin="0,0,12,0" Padding="10" />
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </StackPanel>
        </DataTemplate>
    </phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
Теги:
xaml
windows-phone-8

2 ответа

0
Лучший ответ

В событии SelectionChanged вы можете получить список ListBox, sender параметр sender. Оттуда вы можете получить объект Data, запустив datacontext:

private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var listBox = (ListBox)sender;

    var data = (Data)listBox.DataContext;

    System.Diagnostics.Debug.WriteLine(data.Title);
}
0

В рамках вашего мероприятия selectionChanged попробуйте следующее:

string text = (listBox.SelectedItem as ListBoxItem).Content.ToString(); //listBox is the name of the Listbox

лучшей ссылкой может быть следующее:

Получение выбранной строки элемента из связанного ListBox

Надеюсь, поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню