2013-08-19 2 views
0

Я занимаюсь разработкой небольшого приложения окна магазина в C#, где я заселил значения и содержания для ListBox используя следующий фрагмент кода.Прочитать значение элемента в ListBox

код 1: добавляет название песни в качестве элемента к ListBox, используя песни класса создать предмета

private void addTitles(string title, int value) 
    { 
     Song songItem = new Song(); 
     songItem.Text = title; 
     songItem.Value = value; 
     listbox1.Items.Add(songItem); // adds the 'songItem' as an Item to listbox 
    } 

код 2: Song класс который является используется для установки значений для каждого позиция ('songItem')

public class Song 
{ 
    public string Text { get; set; } 
    public int Value { get; set; } 
    public override string ToString() 
    { 
     return Text; 
    } 
} 

Население до listbox действует в настоящее время.

То, что я хочу, это получить «значение» каждого пункта на событии Click во время выполнения.

Для этой цели, как я могу читать (экстракт) значение выбранного пункта в ListBox, в C#? (Value является songItem.Value)

код 3: Я попробовал этот код, как пытаются выяснить решение, но это не сработало

private void listbox1_tapped(object sender, TappedRoutedEventArgs e) 
     { 
      Int selectedItemValue = listbox1.SelectedItem.Value(); 
     } 

Поэтому было бы очень признателен, если кто-то может помочь мне, так как я любитель.

ответ

4

не уверен, о "TappedRoutedEventArgs", но я бы

private void listbox1_tapped(object sender, TappedRoutedEventArgs e) 
     { 
      var selectedSong = (Song)listbox1.SelectedItem; 
      if (selectedSong != null) { 
       var val = selectedSong.Value; 
       } 
     } 

потому что SelectedItem является Object (который не знает о свойстве Value), поэтому вам нужно сделать i t до Song.

Кстати, Value - это property, а не method, поэтому вам не нужны скобки.

+0

Цените для ответа, я изменил свой данный код литья значения на Int и получил ожидаемый результат. – hirosht

0

Try так:

Song song=listbox1.SelectedItem as Song; 

или это:

var selected = listbox1.SelectedValue as Song; 
0

попробовать что-то вроде этого:

if (listbox1.SelectedRows.Count>0){ 
     Song song=(Song)listbox1.SelectedItem; 
    int value=song.Value; 
} 
Смежные вопросы