2012-04-03 4 views
0

это моя XAML:как я работаю с ListView.Item.CurrentItem

<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? как я могу получить доступ к данным, которые хранятся в каждом элементе? я не могу использовать свойства доступа, и я не могу преобразовать его во что-либо другое, кроме объекта.

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

ТНХ для любой помощи

ответ

0

Простой литой токSerie для печати серии.

Series currentSerie = (Series)myListView.Items.CurrentItem; 
+0

это работало как шарм, thx – braunbaer

0

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

+0

Я вообще не кастинг (насколько я знаю). если изменить объект currentSerie на Serie currentSerie (мой пользовательский класс), я получаю сообщение «Ошибка компилятора CS0266» -> «Невозможно неявно преобразовать тип« type1 »в« type2 ». Явное преобразование существует (вы пропускаете листинг?)« – braunbaer

+0

Да вы бросаете «object currentSerie» - это актерский состав. Кастинг в действительный класс - это мой ответ и ответ, который вы приняли. – Paparazzi

+0

Как работает объект currentSerie? и если да, то почему я должен бросать Items.CurrentItem в myClass, если он не из объекта типа? – braunbaer

0

Как насчет casting?

Series series = (Series)myListView.Items.CurrentItem; 

 Смежные вопросы

  • Нет связанных вопросов^_^