2013-03-27 1 views
5

Я использую Telerik Slide View управления и поддерживает SelectionChanged событиеПолучение объекта из SelectionChangedEventArgs е Windows Phone 8

private void radSlideView_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{   
    var addedItems = e.AddedItems; 
} 

e содержит MainViewModel объект, который содержит FileName свойство. Как «извлечь» FileName недвижимость от e? addedItems является System.Collection.IList типа

enter image description here

ответ

10

Вы должны бросить:

if(e.AddedItems.Length > 0)  // make sure there is at least one item.. 
{ 
    MainViewModel firstItem = e.AddedItems[0] as MainViewModel; // cast.. 
    if(firstItem != null)           // if not null.. 
    { 
     string fileName = firstItem.FileName;      // get the file name 
    } 
} 
+0

Это самый правильный способ ее решения? Я ожидал бы, что какой-то метод попадет в список без as'ing, литья или ссылки на нулевой элемент. Кажется, что это просто небезопасно (хотя я вижу, что протектер снова пустет коллекцию) и работает только в том случае, если мы знаем тип, который нужно использовать (и он не может измениться, или у нас будет пуф) ... –

+2

@ Konrad, к сожалению, WPF полный компромиссов, подобных этому. Это компромисс между гибкостью и безопасностью. –

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