2014-10-01 20 views
0

我想獲取SelectedValue列表框中的選定項目,然後執行操作從數據庫中獲取id。下面是我在上下文菜單長按從longbox上的listbox獲取SelectedValue contextMenu點擊windowsphone

var selected = (NewsData)lstNews.SelectedValue; 
int a = selected.newsID; 
MessageBox.Show(a.ToString()); 

但它會引發錯誤的代碼。

附加信息:未將對象引用設置爲對象的實例。這是因爲我們只能在選定的點按事件中獲取selectedvalue,而如何在長按上下文菜單點擊事件上獲得相同的效果。

+0

[什麼是一個NullReferenceException,如何解決呢?] (http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – 2014-10-01 06:51:59

+0

我知道它是空的,但如果我使用相同的代碼在選擇水龍頭事件它工作正常。我希望它在longpress contextmenu上工作click @SonerGönül – SD7 2014-10-01 06:55:25

+0

我懷疑上下文菜單單擊操作默認情況下未設置「SelectedValue」,您可以使用sender參數代替。發佈相關的XAML標記,特別是列表框。 – har07 2014-10-01 07:29:36

回答

2

我懷疑這是因爲上下文菜單單擊操作默認情況下未設置SelectedValue。你可以得到對應點擊項目從sender參數代替,例如(假設ListBox標記看起來像一個張貼在the previous question)信息:

private void MenuItem_Click(object sender, RoutedEventArgs e) 
{ 
    var menuItem = (MenuItem)sender; 
    var ctxMenu = (ContextMenu)menuItem.Parent; 
    var stackpanel = (StackPanel)ctxMenu.Owner; 
    var selected = (NewsData)stackpanel.DataContext; 
    int a = selected.newsID; 
    MessageBox.Show(a.ToString()); 
}