【问题标题】:Win8 ListView Tap does not select itemWin8 ListView Tap不选择项目
【发布时间】:2013-03-20 15:12:29
【问题描述】:

嗨,我正在做一个笔记应用程序,我已经将它连接到我的 SQL Azure 数据库。 这些项目通过 MobileServiceCollectionView 自动填充。 点击一个item后,右边应该会打开一个detailView...

我不知道为什么,但是点击一个项目并没有选择它,所以我无法在 noteListView_Tapped 事件中检查 listView.SelectedItem .....

我的列表视图有什么问题?

<ListView x:Name="noteListView" Margin="20,0,0,0" Tapped="noteListView_Tapped">
 <ListView.ItemTemplate>
  <DataTemplate>
   <StackPanel Orientation="Horizontal" Margin="2">

     <CheckBox x:Name="CheckBoxComplete" IsChecked="{Binding Complete, Mode=TwoWay}" Checked="CheckBoxComplete_Checked" Padding="3"/>
     <TextBlock x:Name="TextBlockTodoItem" Text="{Binding Title}" Padding="3" />

   </StackPanel>
  </DataTemplate>
 </ListView.ItemTemplate>
</ListView>

这里是 Tapped 事件。它在 TodoItem t = (TodoItem)lv.SelectedItem; 上崩溃了

所以我添加了 if 条件,现在除了调试打印之外什么都没有发生。

private void noteListView_Tapped(object sender, TappedRoutedEventArgs e)
    {
        Debug.WriteLine("0");
        ListView lv = (ListView)sender;
        if (lv.Items.Count > 0)
        {
            if (lv.SelectedItems.Count > 0)
            {
                TodoItem t = (TodoItem)lv.SelectedItem;
                Debug.WriteLine("1");
                Debug.WriteLine(t.Title);
                try
                {
                    Location l = TodoItem.StringToLocation(t.LocationTaken);
                    Debug.WriteLine("2");
                    MapLayer.SetPosition(locationIcon, l);
                    map.SetView(l, 15.0f);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Map set position failed.: " + ex.Message);
                }
            }
        }
    }

那么我需要改变什么或者我怎么知道哪个项目被点击/选择了?

【问题讨论】:

    标签: c# xaml listview windows-8


    【解决方案1】:

    为什么不在列表视图上使用 SelectionChanged 事件?

    <ListView SelectionChanged="noteListView_SelectionChanged">
    

    然后在你的代码后面

    private void noteListView_SelectionChanged(object sender, RoutedEventArgs e)
    {
        if((sender as ListView).Items.Count > 0)
        {
            .....
        }
    }
    

    我认为(尽管我不确定)您的问题是点击 listView,因此点击的事件与选择列表中的项目不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多