Mat*_*hew 1 c# xaml listview windows-phone-8.1
我在点击项目时遇到问题 ListView
MainPage.xaml中
<ListView
ReorderMode="Disabled"
SelectionMode="Single"
IsItemClickEnabled="True"
ItemClick="Section_ItemClick"
ContinuumNavigationTransitionInfo.ExitElementContainer="True">
<ListViewItem Margin="0,0,0,10" Background="LightGray">
<StackPanel Orientation="Horizontal">
<Image Source="/Assets/Icons/1.png" Width="94" Height="94"/>
<TextBlock x:Uid="1" />
</StackPanel>
</ListViewItem>
...
</ListView>
Run Code Online (Sandbox Code Playgroud)
MainPage.xaml.cs中
private async void Section_ItemClick(object sender, ItemClickEventArgs e)
{
ListViewItem itemId = ((sender as ListView).SelectedItem as ListViewItem);
if (itemId != null)
{
.. do something ..
}
else
{
throw new Exception(this.resourceLoader.GetString("NavigationFailedExceptionMessage"));
}
}
Run Code Online (Sandbox Code Playgroud)
编辑**
在进一步的测试,我发现,这两个sender和e是空的事件触发时?
好的,这解决了(最后).使用SelectionChanged事件,并通过分配每个ListViewItem名称x:Name
MainPage.xaml中
<ListView
x:Name="SettingsHub"
ReorderMode="Disabled"
SelectionChanged="SettingsHub_SelectionChanged"
ContinuumNavigationTransitionInfo.ExitElementContainer="True">
...
</ListView>
Run Code Online (Sandbox Code Playgroud)
MainPage.xaml.cs中
private void SettingsHub_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count > 0)
{
var itemId = (e.AddedItems[0] as ListViewItem).Name;
}
}
Run Code Online (Sandbox Code Playgroud)