diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/App.xaml.cs b/XamarinStudy/XamarinStudy/XamarinStudy/App.xaml.cs index deca010..19be1a5 100644 --- a/XamarinStudy/XamarinStudy/XamarinStudy/App.xaml.cs +++ b/XamarinStudy/XamarinStudy/XamarinStudy/App.xaml.cs @@ -22,7 +22,9 @@ namespace XamarinStudy //tabbed.Children.Add(new SampleContentPage() { Title = "Page1" }); //tabbed.Children.Add(new SampleToolbarPage() { Title = "Page2" }); //MainPage = tabbed; - MainPage = new SampleCarouselPage(); + //MainPage = new SampleCarouselPage(); + //MainPage = new SampleFlyoutPage(); + MainPage = new SampleFlyoutPage2(); } protected override void OnStart() diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage.xaml b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage.xaml new file mode 100644 index 0000000..d032afd --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage.xaml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage.xaml.cs b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage.xaml.cs new file mode 100644 index 0000000..a4a0f1d --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage.xaml.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms; +using Xamarin.Forms.Xaml; + +namespace XamarinStudy.Views +{ + [XamlCompilation(XamlCompilationOptions.Compile)] + public partial class SampleFlyoutPage : FlyoutPage + { + public SampleFlyoutPage() + { + InitializeComponent(); + FlyoutPage.ListView.ItemSelected += ListView_ItemSelected; + } + + private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) + { + var item = e.SelectedItem as SampleFlyoutPageFlyoutMenuItem; + if (item == null) + return; + + var page = (Page)Activator.CreateInstance(item.TargetType); + page.Title = item.Title; + + Detail = new NavigationPage(page); + IsPresented = false; + + FlyoutPage.ListView.SelectedItem = null; + } + } +} \ No newline at end of file diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage2.cs b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage2.cs new file mode 100644 index 0000000..add3ab0 --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPage2.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Xamarin.Forms; + +namespace XamarinStudy.Views +{ + internal class SampleFlyoutPage2 : FlyoutPage + { + public SampleFlyoutPage2() + { + Flyout = new SampleContentPage() { Title = "FlyOutPage" }; + Detail = new NavigationPage(new SampleToolbarPage()); + } + } +} diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageDetail.xaml b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageDetail.xaml new file mode 100644 index 0000000..c9cdaaf --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageDetail.xaml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageDetail.xaml.cs b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageDetail.xaml.cs new file mode 100644 index 0000000..eb08ae8 --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageDetail.xaml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms; +using Xamarin.Forms.Xaml; + +namespace XamarinStudy.Views +{ + [XamlCompilation(XamlCompilationOptions.Compile)] + public partial class SampleFlyoutPageDetail : ContentPage + { + public SampleFlyoutPageDetail() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyout.xaml b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyout.xaml new file mode 100644 index 0000000..752c73c --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyout.xaml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyout.xaml.cs b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyout.xaml.cs new file mode 100644 index 0000000..6738a70 --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyout.xaml.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms; +using Xamarin.Forms.Xaml; + +namespace XamarinStudy.Views +{ + [XamlCompilation(XamlCompilationOptions.Compile)] + public partial class SampleFlyoutPageFlyout : ContentPage + { + public ListView ListView; + + public SampleFlyoutPageFlyout() + { + InitializeComponent(); + + BindingContext = new SampleFlyoutPageFlyoutViewModel(); + ListView = MenuItemsListView; + } + + private class SampleFlyoutPageFlyoutViewModel : INotifyPropertyChanged + { + public ObservableCollection MenuItems { get; set; } + + public SampleFlyoutPageFlyoutViewModel() + { + MenuItems = new ObservableCollection(new[] + { + new SampleFlyoutPageFlyoutMenuItem { Id = 0, Title = "Page 1" }, + new SampleFlyoutPageFlyoutMenuItem { Id = 1, Title = "Page 2" }, + new SampleFlyoutPageFlyoutMenuItem { Id = 2, Title = "Page 3" }, + new SampleFlyoutPageFlyoutMenuItem { Id = 3, Title = "Page 4" }, + new SampleFlyoutPageFlyoutMenuItem { Id = 4, Title = "Page 5" }, + }); + } + + #region INotifyPropertyChanged Implementation + public event PropertyChangedEventHandler PropertyChanged; + void OnPropertyChanged([CallerMemberName] string propertyName = "") + { + if (PropertyChanged == null) + return; + + PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + #endregion + } + } +} \ No newline at end of file diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyoutMenuItem.cs b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyoutMenuItem.cs new file mode 100644 index 0000000..9b6c7c9 --- /dev/null +++ b/XamarinStudy/XamarinStudy/XamarinStudy/Views/SampleFlyoutPageFlyoutMenuItem.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace XamarinStudy.Views +{ + public class SampleFlyoutPageFlyoutMenuItem + { + public SampleFlyoutPageFlyoutMenuItem() + { + TargetType = typeof(SampleFlyoutPageFlyoutMenuItem); + } + public int Id { get; set; } + public string Title { get; set; } + + public Type TargetType { get; set; } + } +} \ No newline at end of file diff --git a/XamarinStudy/XamarinStudy/XamarinStudy/XamarinStudy.csproj b/XamarinStudy/XamarinStudy/XamarinStudy/XamarinStudy.csproj index 27538ea..b4cec35 100644 --- a/XamarinStudy/XamarinStudy/XamarinStudy/XamarinStudy.csproj +++ b/XamarinStudy/XamarinStudy/XamarinStudy/XamarinStudy.csproj @@ -14,6 +14,15 @@ MSBuild:UpdateDesignTimeXaml + + MSBuild:UpdateDesignTimeXaml + + + MSBuild:UpdateDesignTimeXaml + + + MSBuild:UpdateDesignTimeXaml + MSBuild:UpdateDesignTimeXaml