2013-03-22 25 views
2

我以編程方式將項目添加到名爲PanoramaCC的Panorama控件中。如何在運行時檢索Panorama-Item的名稱?

//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的,我目前正在研究的名稱和用它做什麼。我設法通過點擊事件來檢索名稱以便導航,string name = ((PanoramaItem)sender).Name;,但這是一個不同的場景。我想檢索名稱,然後刪除相應名稱的項目。按下按鈕應該刪除當前選中的panoramaItem,這正是我想要實現的。

回答

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);  
} 
+0

derp im facepalming hard right now。我看到了panoramaControl的selectedItem,但我的大腦沒有認出它。謝謝 – 2013-03-22 13:45:39

+0

任何想法如何當SelectedItem是模型類時獲取PanoramaItem?我只是使用ItemTemplate和數據綁定,因此我的模型對象列表顯示爲PanoramaItem,這意味着SelectedItem以及Items僅引用我的模型類(es)。上述代碼的含義總是導致currentItem爲空。 – WarrenFaith 2013-06-26 15:10:08

+0

我還沒有嘗試從全景圖項中檢索SelectedItem,但[此行爲](http://geoffwebbercross.blogspot.co.uk/2011/12/wp7-mvvm-panorama-selectedindex-binding.html)可能會有所幫助以及[此解決方法](http://stackoverflow.com/questions/14260701/windows-phone-8-panorama-selectionchanged-databinding)。 – keyboardP 2013-06-26 21:06:26