как мне работать с ListView.Item.CurrentItem - PullRequest
0 голосов
/ 03 апреля 2012

это мой xaml:

    <ListView Name="myListView" ItemsSource="{Binding ElementName=IndexPage, Path=SeriesCollection}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" IsSynchronizedWithCurrentItem="True" SelectionChanged="handleSelected">
    <ListView.ItemsPanel >
        <ItemsPanelTemplate>
            <WrapPanel>
            </WrapPanel>
        </ItemsPanelTemplate>            
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel >
                <Image Width="214" Height="317" Source="{Binding Image}"/>
                <Label Content="{Binding Name}" />
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

и это мой код

    public void handleSelected(object sender, RoutedEventArgs args)
    {
        object currentSerie = myListView.Items.CurrentItem;
        Console.WriteLine(currentSerie.GetType());
        Console.WriteLine(currentSerie.ToString());
    }

как мне работать с currentSerie?как получить доступ к данным, которые хранятся в каждом элементе?я не могу получить доступ к свойствам, и я не могу преобразовать его во что-либо еще, чем объект.

также интересно, вывод кода не "объект", а "Series", поэтому ToString () и GetType () получают правильный тип.

спасибо за любую помощь

Ответы [ 3 ]

0 голосов
/ 03 апреля 2012

Просто приведите currentSerie к типу Series.

Series currentSerie = (Series)myListView.Items.CurrentItem;
0 голосов
/ 03 апреля 2012

Как насчет литья это?

Series series = (Series)myListView.Items.CurrentItem;
0 голосов
/ 03 апреля 2012

Вы применяете объект к объекту, поэтому вы получаете только свойства объекта.Преобразование в настоящий пользовательский класс, и вы получите свойства этого класса.myClass currentSer =

...