Как получить доступ к выбранному предмету? ListBox - PullRequest
3 голосов
/ 19 апреля 2011

У меня есть ListBox на моей странице xaml под названием MainListBox. я могу получить индекс, который будет выбран, но как я могу получить данные из выбранного элемента?

Мой MainListBox_SelectionChanged:

private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        int noteID1 = MainListBox.SelectedIndex+1;

        if (MainListBox.SelectedIndex != null)
        {


            //I can get the index that get selected, 
            Debug.WriteLine(MainListBox.SelectedIndex);



        }

         MainListBox.SelectedIndex = -1;

    }

мой XAML:

<ListBox x:Name="MainListBox" Margin="6,0,0,0" ItemsSource="{Binding Items}" SelectionChanged="MainListBox_SelectionChanged" Height="578" VerticalAlignment="Bottom" Grid.ColumnSpan="3">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="0,0,0,17" Width="432">
                        <TextBlock x:Name="ItemText" Text="{Binding noteName}" Margin="-2,-13,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                        <TextBlock x:Name="DetailsText" Text="{Binding noteText}" Margin="10,-6,0,3" Style="{StaticResource PhoneTextSubtleStyle}"/>
                        <TextBlock x:Name="noteIdText" Text="{Binding noteID}" Margin="10,-6,0,3" Style="{StaticResource PhoneTextSubtleStyle}"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Пожалуйста, кто-нибудь направит меня, спасибо. :)

Ответы [ 5 ]

6 голосов
/ 19 апреля 2011

вы пробовали MainListBox.SelectedItem?

var data = MainListBox.Selecteditem as [тип класса, привязанного к списку];

1 голос
/ 20 апреля 2011

Спасибо всем за быстрый ответ.

наконец-то я понял это.

 if (MainListBox.SelectedItem != null)
        {


            var data = MainListBox.SelectedItem as Notes;

            NavigationService.Navigate(new Uri("/DetailsPage.xaml?noteID=" + data.noteID, UriKind.Relative));


        }
1 голос
/ 19 апреля 2011

Допустим, объект Items, к которому вы привязываете свойство ItemsSource ListBox, является коллекцией объектов класса MyDataObject.Затем в рамках выбора измененного обратного вызова используйте следующее:

MyDataObject obj = ( (sender as FrameworkElement).DataContext ) as MyDataObject;
int noteID = obj.noteID;
0 голосов
/ 18 сентября 2012
private void MyList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    DataModel data = (sender as ListBox).SelectedItem as DataModel;
    // data.MyPropertyHere;
}
0 голосов
/ 19 апреля 2011

SelectedItem - это сущность в Предметах.Вы можете напрямую преобразовать в тип сущности.

Также SelectedItem должен быть в System.Windows.Control.ListBox в WP7.Вот документация: http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.aspx http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.selector.selecteditem.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...