2

私はPanoramaCCと呼ばれるアイテムをPanoramaControlにプログラムで追加しています。

//function to create the panorama items in our view
private void showPanorama(string panoramaName)
{
    //create the panorama item and define it
    PanoramaItem genItem = new PanoramaItem();
    genItem.Height = 265;
    genItem.Width = 440;
    genItem.Tap += new EventHandler<System.Windows.Input.GestureEventArgs>(PanoramaItem_Tap);
    genItem.Name = panoramaName;

    //create the stackpanel for the panoramaitem
    StackPanel genStack = new StackPanel();
    genStack.Orientation = System.Windows.Controls.Orientation.Horizontal;
    //margin to be done
    genStack.Margin = new Thickness(0, -20, 0, 20);

    //load the image
    Image genImg = new Image();
    genImg.Height = 220;
    genImg.Width = 400;
    genImg.Stretch = System.Windows.Media.Stretch.Fill;
    genImg.Margin = new Thickness(20, 5, 20, 5);

    string path = "Assets/AppGraphics/CreditCards/" + panoramaName.ToString() + "Front.png";
    Uri uriR = new Uri(path, UriKind.Relative);
    BitmapImage imgSource = new BitmapImage(uriR);
    genImg.Source = imgSource;

    //add image into stackpanel
    genStack.Children.Add(genImg);
    //add stackpanel to the panoramaitem
    genItem.Content = genStack;
    //add the panoramaitem to the panoramaview
    this.PanoramaCC.Items.Add(genItem);
}

私が抱えている問題は、実行時に現在見ている名前を取得してpanoramaItem、それを使って何かをしたいということです。ナビゲーションの目的でtapイベントを介して名前を取得できましたstring name = ((PanoramaItem)sender).Name;が、これは別のシナリオです。名前を取得してから、対応する名前のアイテムを削除したい。ボタンを押すと、現在選択されてpanoramaItemいるものが削除されます。これが私が達成しようとしていることです。

4

1 に答える 1

4

SelectedItemプロパティを使用して、現在のPanoramaItemを取得できます。削除するために名前を取得する必要はありません。

PanoramaItem currentItem = myPanorama.SelectedItem as PanoramaItem;
if(currentItem != null)
{
   //if you want the name for other reasons
   string name = currentItem.Name;

   //Items returns an ItemsCollection object
   myPanorama.Items.Remove(currentItem);       
}
于 2013-03-22T13:42:10.543 に答える