前提・実現したいこと
Xamarin.Formsでメモ帳アプリを作っています。
作りたいものは、下の画像のように一覧画面でメモ一覧を表示し、メモをタップすると右側の編集画面に移動してメモの内容を編集できるようにしたいです。
(現在はタップすると削除するようにしています)
一覧画面 | 編集画面 |
---|---|
実現方法を調べたのですが、よくわからず行き詰まっています。
MVVMというアーキテクチャを理解していないと難しいのでしょうか?
アドバイスなどを頂けると幸いです。
該当のソースコード
一覧画面(XAML)
<?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Memo" x:Class="Memo.MemoPage"> <ContentPage.ToolbarItems> <ToolbarItem Text="追加" Clicked="Add_clicked"/> </ContentPage.ToolbarItems> <ListView x:Name="listView" > <ListView.ItemTemplate> <DataTemplate> <TextCell Text="{Binding Memo}" Detail="{Binding InsertDate, StringFormat='{0:yyy/MM/dd hh:mm}'}"/> </DataTemplate> </ListView.ItemTemplate> </ListView> </ContentPage>
一覧画面のコードビハインド
C#
1 2namespace Memo 3{ 4 5 public partial class MemoPage : ContentPage 6 { 7 readonly TodoItemDatabase todoItemDatabase = new TodoItemDatabase(); 8 9 public MemoPage() 10 { 11 InitializeComponent(); 12 13 listView.ItemsSource = todoItemDatabase.GetItems(); 14 15 listView.ItemTapped += async (s, a) => 16 { 17 var wItem = (TodoItem)a.Item; 18 if (await DisplayAlert("削除しますか", wItem.Memo, "はい", "いいえ")) 19 { 20 todoItemDatabase.DeleteItem(wItem); 21 listView.ItemsSource = todoItemDatabase.GetItems(); 22 } 23 }; 24 } 25 26 protected override void OnAppearing() 27 { 28 base.OnAppearing(); 29 listView.ItemsSource = todoItemDatabase.GetItems(); 30 } 31 32 async void Add_clicked(object sender, EventArgs e) 33 { 34 await Navigation.PushAsync(new WritePage()); 35 } 36 } 37}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。