2015-11-04 49 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

相关问题