こんにちは。メモを取るアプリを作成していて、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);
}
}
}
}
では、何を変更する必要がありますか、またはどのアイテムがクリック/選択されたかをどのように知ることができますか?