0

こんにちは。メモを取るアプリを作成していて、SQLAzureデータベースに接続しました。アイテムは、MobileServiceCollectionViewを介して自動的に入力されます。アイテムをタップした後、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>

そしてここでタップされたイベント..それはクラッシュしました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);
                }
            }
        }
    }

では、何を変更する必要がありますか、またはどのアイテムがクリック/選択されたかをどのように知ることができますか?

4

1 に答える 1

1

リストビューで SelectionChanged イベントを使用しないのはなぜですか?

<ListView SelectionChanged="noteListView_SelectionChanged">

次に、コードビハインドで

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

あなたの問題は、リストビューをタップすること、つまりタップされたイベントが、リスト内の項目を選択することと同じではないことだと思います(よくわかりませんが)。

于 2013-03-20T18:16:42.620 に答える