From bf8399d8d173d871f871962852a74304daa2c982 Mon Sep 17 00:00:00 2001 From: syneffort Date: Thu, 18 Apr 2024 10:33:03 +0900 Subject: [PATCH] collectionview swipe --- .../CollectionViewDemos/AppShell.xaml | 7 ++- .../CollectionViewDemos.csproj | 8 +++ .../Resources/Images/favorite.png | Bin 0 -> 3887 bytes .../Resources/Images/remove.png | Bin 0 -> 1338 bytes .../ViewModels/MonkeysViewModel.cs | 15 ++++++ .../CollectionViewDemos/Views/ThirdPage.xaml | 49 ++++++++++++++++++ .../Views/ThirdPage.xaml.cs | 9 ++++ 7 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 MyFirstMauiApp/CollectionViewDemos/Resources/Images/favorite.png create mode 100644 MyFirstMauiApp/CollectionViewDemos/Resources/Images/remove.png create mode 100644 MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml create mode 100644 MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml.cs diff --git a/MyFirstMauiApp/CollectionViewDemos/AppShell.xaml b/MyFirstMauiApp/CollectionViewDemos/AppShell.xaml index 4343f40..161610d 100644 --- a/MyFirstMauiApp/CollectionViewDemos/AppShell.xaml +++ b/MyFirstMauiApp/CollectionViewDemos/AppShell.xaml @@ -7,12 +7,15 @@ Shell.FlyoutBehavior="Disabled"> - - + diff --git a/MyFirstMauiApp/CollectionViewDemos/CollectionViewDemos.csproj b/MyFirstMauiApp/CollectionViewDemos/CollectionViewDemos.csproj index d3028de..7c8f2f9 100644 --- a/MyFirstMauiApp/CollectionViewDemos/CollectionViewDemos.csproj +++ b/MyFirstMauiApp/CollectionViewDemos/CollectionViewDemos.csproj @@ -56,6 +56,11 @@ + + + + + @@ -76,6 +81,9 @@ MSBuild:Compile + + MSBuild:Compile + diff --git a/MyFirstMauiApp/CollectionViewDemos/Resources/Images/favorite.png b/MyFirstMauiApp/CollectionViewDemos/Resources/Images/favorite.png new file mode 100644 index 0000000000000000000000000000000000000000..44067d961f4472ef237a9a77a8712139df2d3866 GIT binary patch literal 3887 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 literal 0 HcmV?d00001 diff --git a/MyFirstMauiApp/CollectionViewDemos/Resources/Images/remove.png b/MyFirstMauiApp/CollectionViewDemos/Resources/Images/remove.png new file mode 100644 index 0000000000000000000000000000000000000000..df327c774a4813d75b74860411b035ce85a4658c GIT binary patch literal 1338 zcmeAS@N?(olHy`uVBq!ia0vp^1t8491|*L?_~H$uI14-?iy0WWg+Z8+Vb&Z81_qWl zo-U3d6?5Ls_3sER6*=B7mN{kNPQ5kPl6LV;IdHT`_)GgWUzf1c3PGM9U!N=8DWTh; zu-$7*o5iBZclSzWuXE($pn7>VEJ_V(x)zmYQHyWp3+~b zb@^o3`#J3v&o%ciSQWFRLR0p%;wk;*d3D4p)bHSc!52sw765nOI ze6r6W#cRUimEYta%j8-d@7k&xyG-cJVbRwX_7ih6)~mlU&VEz0@W$bUiIW*m9}v@c zo2namyNdNib4#t&S>Y7x!kuSt-g8>Nc20C#T(j*$OV@4bzuI-nexJDUHl+Km)xo?? zyf3(V?}cS`AGes^Bgb7pj9Oc^uai=d7U%L_Lmtj@e>UM8>b>nBb^mt}V&us@| zp1#R{u~GMCyv??yuTQqgMW@*YpQ#JAITvY?r*tVM<=bp6-Kifu+06{Uta+uo=CtgM z0~d;SUJByedD`7==8QW>l@&LL&z!N8Z;E`?G?3C-b~A%7bJlJNIphOk?TN@-$+VM8 z`FvA_Wv;&W(KG2;KW5I@l{#UQ%W=l5^MhZv9LRD|ykNRO;DuBGM+vV6%Puw%rdVdK z#&wLX4%Zu;7Gygxi)fgCI-$Cx+_Kt&-{;2r%yajYCf}>reM@gaBj*(9iha=^f2W_Q z^I!4j|B?TvuT7Yr-kWW5k=4YYQGJSOpY*i}%K1C@JQdP)PZEw@u;yZPJ4_}|`Ild|dB(N8J| zX54?j)xnWX<@~2?lV2y2yZ8J)aa`$q;Xe%{_iz2VaW_*Z=6qtgz`**A6IYDNidAe) zGdyiR_e*d8%6mQk&IZ1#Ia_33eC@f$jG670`-ApM&OIGiurJN>-y&tZLisWdiQ)o;kVumha-#@rOyVj+T7OP-D&>b);@~;zRG&7 zrAl8vPpW*ytK|N0rXi5CDd3EOcC1X@puO}vc|I=dZ*H^>%ar=~dkJ#QnXKx$5EV%9TPh-E+;>(ZkFu(Rn5z`N5 z_lsDQv;3lH<<1b5*%M|r7x5dHt`n`EYAgTDX7??{X@&d~LK-{-`S_jy3quA^S3j3^ HP6 Monkeys { get; private set; } + public ICommand FavoriteCommand => new Command(FavoriteMonkey); + public ICommand RemoveCommand => new Command(RemoveMonkey); + public MonkeysViewModel() { _source = new List(); @@ -161,5 +165,16 @@ namespace CollectionViewDemos.ViewModels Monkeys = new ObservableCollection(_source); } + + private void RemoveMonkey(Monkey monkey) + { + if (Monkeys.Contains(monkey)) + Monkeys.Remove(monkey); + } + + private void FavoriteMonkey(Monkey monkey) + { + monkey.IsFavorite = !monkey.IsFavorite; + } } } diff --git a/MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml b/MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml new file mode 100644 index 0000000..3812ee5 --- /dev/null +++ b/MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml.cs b/MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml.cs new file mode 100644 index 0000000..f5cfc6f --- /dev/null +++ b/MyFirstMauiApp/CollectionViewDemos/Views/ThirdPage.xaml.cs @@ -0,0 +1,9 @@ +namespace CollectionViewDemos.Views; + +public partial class ThirdPage : ContentPage +{ + public ThirdPage() + { + InitializeComponent(); + } +} \ No newline at end of file