2011-08-01 8 views
0

Windows Phone 7プラットフォームのリストボックスから選択した値を取得しようとしています。私のリストボックスのデータは、2つのテキストブロックと1つのイメージオブジェクトからなる3つの列で構成されています。リストボックスウィンドウの選択値の取得電話7

選択したテキストのテキスト(テキストブロックのいずれかのデータ)を取得できる方法でコードを挿入する必要がありますか?以下は

グリッドを定義するための私のコードです:

 //Define grid column, size 

     Grid schedule = new Grid(); 

     foreach (var time in timeSplit) 
     { 
      timeList = time; 
      //Column 1 to hold the time of the schedule 
      ColumnDefinition scheduleTimeColumn = new ColumnDefinition(); 
      GridLength timeGrid = new GridLength(110); 
      scheduleTimeColumn.Width = timeGrid; 
      schedule.ColumnDefinitions.Add(scheduleTimeColumn); 

      //Text block that show the time of the schedule 
      TextBlock timeTxtBlock = new TextBlock(); 
      timeTxtBlock.Text = time; 
      //Set the alarm label text block properties - margin, fontsize 
      timeTxtBlock.FontSize = 28; 
      timeTxtBlock.Margin = new Thickness(0, 20, 0, 0); 
      //Set the column that will hold the time of the schedule 
      Grid.SetColumn(timeTxtBlock, 0); 

      schedule.Children.Add(timeTxtBlock); 
     } 

     foreach (var title in titleSplit) 
     { 
      titleList = title; 

      //Column 2 to hold the title of the schedule 
      ColumnDefinition scheduleTitleColumn = new ColumnDefinition(); 
      GridLength titleGrid = new GridLength(500); 
      scheduleTitleColumn.Width = titleGrid; 
      schedule.ColumnDefinitions.Add(scheduleTitleColumn); 

      //Text block that show the title of the schedule 
      TextBlock titleTxtBlock = new TextBlock(); 

      if (title.Length > 10) 
      { 
       string strTitle = title.Substring(0, 10) + "...."; 
       titleTxtBlock.Text = strTitle; 
      } 
      else 
      { 
       titleTxtBlock.Text = title; 
      } 

      //Set the alarm label text block properties - margin, fontsize 
      titleTxtBlock.FontSize = 28; 
      titleTxtBlock.Margin = new Thickness(60, 20, 0, 0); 
      //Set the column that will hold the title of the schedule 
      Grid.SetColumn(titleTxtBlock, 1); 

      schedule.Children.Add(titleTxtBlock); 
      //scheduleListBox.Items.Add(schedule); 
     } 

     foreach (var category in categorySplit) 
     { 
      categoryList = category; 

      //Column 3 to hold the image category of the schedule 
      ColumnDefinition categoryImageColumn = new ColumnDefinition(); 
      GridLength catImgnGrid = new GridLength(70); 
      categoryImageColumn.Width = catImgnGrid; 
      schedule.ColumnDefinitions.Add(categoryImageColumn); 

      TextBlock categoryTxtBlock = new TextBlock(); 
      categoryTxtBlock.Text = category; 

      //set the category image and its properties - margin, width, height, name, background, font size 
      Image categoryImage = new Image(); 
      categoryImage.Margin = new Thickness(-50, 15, 0, 0); 
      categoryImage.Width = 50; 
      categoryImage.Height = 50; 
      if (category == "Priority") 
      { 
       categoryImage.Source = new BitmapImage(new Uri("/AlarmClock;component/Images/exclamination_mark.png", UriKind.Relative)); 
      } 
      else 
       if (category == "Favourite") 
       { 
        categoryImage.Source = new BitmapImage(new Uri("/AlarmClock;component/Images/star_full.png", UriKind.Relative)); 
       } 


      Grid.SetColumn(categoryImage, 2); 
      schedule.Children.Add(categoryImage); 
     } 

     scheduleListBox.Items.Add(schedule); 
    } 

コードリストボックスの選択した値のために:

string selectedName; 

    private void scheduleListBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e) 
    { 
     //Get the value of selected value in scheduleListBox 

     if (null != scheduleListBox.SelectedItem) 
     { 
      selectedName = (scheduleListBox.SelectedItem as ListBoxItem).Content.ToString(); 
     } 
     MessageBox.Show("Selected name : " + selectedName); 

    } 

答えて

0

ベンタン!

あなたがコントロールのタブを取得することができます:

例:

string a = "abc" 
grid myGrid = new grid(); 
myGrid.Tag = a; 

ときのSelectionChangeあなたがコントロールグリッド内のタブを取得しますか?

1

ListBoxItem.Contentは、ListBox.Itemsに追加したグリッドです。その後、Grid.Childrenにアクセスして、追加されたTextBlocksを取得することができます。それらのTextプロパティ

上記は正式な答えです。別のノートで、たくさんの空白を含むコードにもかかわらず、私はそれが動作するとは思わない。たとえば、複数の画像(テキストブロック)を1つのグリッドセルに追加しています。それは意図されていますか?私はそうは思わない。あなたは1つの日付(それは日付ですか?)、1つのタイトルと1つの画像でlistbox itmを使いたいのですか?その場合は、ロジックを変更してください。

関連する問題