Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从所选项目获取标记_C#_Listview_Win Universal App - Fatal编程技术网

C# 如何从所选项目获取标记

C# 如何从所选项目获取标记,c#,listview,win-universal-app,C#,Listview,Win Universal App,选择项时获取SelectedItem的标记属性 我的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" Border

选择项时获取
SelectedItem
标记
属性

我的
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>
但是,对于此行
string data=listViewItem.Tag.ToString()我得到这个错误“对象引用不能为null”我的listViewItem似乎为null,但我不明白为什么


有人知道我做错了什么吗?

使用调试器并检查:

  • 访问settigns\u listView.SelectedItem时是否为空
  • 如果不是,它是ListViewItem吗?(应该是…)

可能您需要注册listview的
SelectionChanged
事件,而不是ListViewItem的
Click
事件

在填充listview时是否为所有ListViewItem设置了标记值?另外:此:
ListViewItem ListViewItem=settigns\u listview.SelectedItem作为ListViewItemsettigns\u listView
为空时,code>才能引发该异常。如果不是,它将简单地为您的
ListViewItem ListViewItem
variable@GianPaolo所有标签都已设置。。是的,您是对的,它在访问标记时引发异常,因为listViewItem为Null SelectedItem为Null我假设.NET framework在设置
SelectedItem
值之前引发事件
ItemClick
。播放ListView和ListViewItem的不同事件,添加一些
Debug.Write(string.format(“事件X-selectedItem={0}”,settigns\u ListView.selectedItem);
(或一些更详细的消息)检查它何时更改。SelectedOnChanged未被调用。是否删除引发异常的行?只需编写一些不引发异常的调试代码,以便了解事件顺序以及SelectedItem属性何时更改
private void settigns_listView_ItemClick(object sender, ItemClickEventArgs e)
{
  ListViewItem listViewItem = settigns_listView.SelectedItem as ListViewItem;
  string data = listViewItem.Tag.ToString();
}