2015-11-04 39 views
0

獲取SelectedItemTag屬性時,已選擇項目的標記..如何從選定項目

我有這個在我的XAML

<ListView IsItemClickEnabled="True" x:Name="settigns_listView" Margin="15,270,0,0" ItemClick="settigns_listView_ItemClick"> 
    <ListViewItem Tag="credits" Margin="0,0,30,0" BorderThickness="0,0,0,3" BorderBrush="#FF353534" FontSize="26.667" Content="Credits"/> 
    <ListViewItem Tag="reset" Margin="0,10,30,0" BorderThickness="0,0,0,3" BorderBrush="#FF353534" FontSize="26.667" Content="Reset game"/> 
</ListView> 

而且ItemClick事件我有內這樣的:

private void settigns_listView_ItemClick(object sender, ItemClickEventArgs e) 
{ 
    ListViewItem listViewItem = settigns_listView.SelectedItem as ListViewItem; 
    string data = listViewItem.Tag.ToString(); 
} 

然而,對於此行string data = listViewItem.Tag.ToString();我得到這個錯誤「對象引用不能爲空」吧似乎我的listViewItem爲空,但我不明白爲什麼?

有沒有人明白我在做什麼錯了?

+0

你設置標籤值的註冊? –

+0

另外:this:'ListViewItem listViewItem = settigns_listView.SelectedItem as ListViewItem;'只有在'settigns_listView'爲空時才能引發該異常。如果不是,它將簡單地將null賦值給你的ListViewItem變量。 –

+0

@GanPaolo所有的標籤都被設置。是的,你是正確的,它在訪問標籤時引發異常,因爲listViewItem爲空 – KTOV

回答

0

去調試和檢查:

  • 是settigns_listView.SelectedItem空當你訪問它?
  • 如果不是,它是一個ListViewItem? (它應該是...)。

也許你需要爲SelectionChanged事件列表視圖,而不是填充的ListView時所有的ListViewItem的Click事件的ListViewItem

+0

SelectedItem爲空 – KTOV

+0

I假定.NET框架在設置「SelectedItem」值之前引發事件「ItemClick」。播放ListView和ListViewItem的不同事件,添加一些'Debug.Write(string.format(「event X - selectedItem = {0}」,settigns_listView.SelectedItem);'(或一些更詳細的消息) 檢查它何時更改。 –

+0

SelectedionChanged不會被調用 – KTOV