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作为ListViewItem仅当settigns\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();
}