private async Task Init() { _timezonesListView = new ListView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, }; var cell = new DataTemplate(typeof(TextCell)); cell.SetBinding(TextCell.TextProperty, "Name"); cell.SetBinding(TextCell.DetailProperty, new Binding(path: "GMT", stringFormat: "GMT {0}")); //cell.SetBinding (TextCell.TextProperty, "GMT"); _timezonesListView.ItemTemplate = cell; tzviewModel = new TimeZoneVM(); //await tzviewModel.getTz (this.user.objectId); _timezonesListView.ItemsSource = tzviewModel.Timezones; _timezonesListView.ItemSelected += (sender, e) => { //((ListView)sender).SelectedItem = null; var tzdto = (TimezoneDTO)((ListView)sender).SelectedItem; DisplayAlert("Alert", "Su id es" + tzdto.objectId, "OK"); }; btnDelete = new Button { Text = "Delete", Font = Font.SystemFontOfSize(NamedSize.Large), BorderWidth = 1, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand, }; btnDelete.Clicked += async(sender, e) => { try { var item = _timezonesListView.SelectedItem; var tzdto = (TimezoneDTO)item; var tzvm = new TimeZoneVM(); await Task.Run(async() => await tzviewModel.deleteTz(tzdto.objectId.ToString())); await tzviewModel.getTz(this.user.objectId); _timezonesListView.ItemsSource = tzviewModel.Timezones; //DisplayAlert ("Alert", "Su id es "+tzdto.objectId.ToString(),"OK"); } catch (Exception) {} }; btnAdd = new Button { Text = "Add", Font = Font.SystemFontOfSize(NamedSize.Large), BorderWidth = 1, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand, }; btnAdd.Clicked += async(sender, e) => { //await Navigation.PushAsync (new TimezonePage ()); await Navigation.PushAsync(new TimezonePage (this.user)); }; // var toppanel = new StackLayout{ // Orientation="Horizontal" , // VerticalOptions="Start", // Children = { // btnDelete // } // }; this.Content = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Padding = new Thickness( left: 0, right: 0, bottom: 0, top: Device.OnPlatform(iOS: 20, Android: 0, WinPhone: 0)), Children = { new StackLayout { Orientation = StackOrientation.Horizontal, VerticalOptions = LayoutOptions.Start, HeightRequest = 50, Children = { btnDelete, btnAdd } }, _timezonesListView } }; }
private async Task Init () { _timezonesListView = new ListView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, }; var cell = new DataTemplate (typeof(TextCell)); cell.SetBinding (TextCell.TextProperty, "Name"); cell.SetBinding (TextCell.DetailProperty, new Binding (path: "GMT", stringFormat: "GMT {0}")); //cell.SetBinding (TextCell.TextProperty, "GMT"); _timezonesListView.ItemTemplate = cell; tzviewModel = new TimeZoneVM (); //await tzviewModel.getTz (this.user.objectId); _timezonesListView.ItemsSource = tzviewModel.Timezones; _timezonesListView.ItemSelected += (sender, e) => { //((ListView)sender).SelectedItem = null; var tzdto= (TimezoneDTO)((ListView)sender).SelectedItem; DisplayAlert ("Alert", "Su id es"+tzdto.objectId,"OK"); }; btnDelete = new Button { Text = "Delete", Font = Font.SystemFontOfSize(NamedSize.Large), BorderWidth = 1, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand, }; btnDelete.Clicked += async (sender, e) => { try { var item =_timezonesListView.SelectedItem; var tzdto= (TimezoneDTO)item; var tzvm= new TimeZoneVM(); await Task.Run( async () => await tzviewModel.deleteTz(tzdto.objectId.ToString())); await tzviewModel.getTz (this.user.objectId); _timezonesListView.ItemsSource = tzviewModel.Timezones; //DisplayAlert ("Alert", "Su id es "+tzdto.objectId.ToString(),"OK"); } catch (Exception){} }; btnAdd = new Button { Text = "Add", Font = Font.SystemFontOfSize(NamedSize.Large), BorderWidth = 1, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand, }; btnAdd.Clicked += async (sender, e) => { //await Navigation.PushAsync (new TimezonePage ()); await Navigation.PushAsync (new TimezonePage (this.user)); }; // var toppanel = new StackLayout{ // Orientation="Horizontal" , // VerticalOptions="Start", // Children = { // btnDelete // } // }; this.Content = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Padding = new Thickness ( left: 0, right: 0, bottom: 0, top: Device.OnPlatform (iOS: 20, Android: 0, WinPhone: 0)), Children = { new StackLayout{ Orientation= StackOrientation.Horizontal , VerticalOptions=LayoutOptions.Start, HeightRequest=50, Children = { btnDelete ,btnAdd } }, _timezonesListView } }; }
public TimezonePage(UserDTO userdto) { this.user = userdto; this.tzviewModel = new TimeZoneVM(); var layout = new StackLayout { Orientation = StackOrientation.Vertical, Padding = 20 }; picker = new Picker { Title = "Gmt", VerticalOptions = LayoutOptions.CenterAndExpand }; foreach (string gmtkey in gmtvalues.Keys) { picker.Items.Add(gmtkey); } picker.SelectedIndex = 10; Grid grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, RowDefinitions = { //new RowDefinition { Height = GridLength.Auto }, //new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) } }, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) }, new ColumnDefinition { Width = new GridLength(200, GridUnitType.Absolute) } //new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }, //new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) } } }; grid.Children.Add(new Label { Text = "TZ Name" }, 0, 0); // Left, First element grid.Children.Add(txtname = new Entry { Placeholder = "tz name" }, 1, 0); // Right, First element grid.Children.Add(new Label { Text = "GMT" }, 0, 1); // Left, Second element grid.Children.Add(picker, 1, 1); // Right, Second element grid.Children.Add(new Label { Text = "City" }, 0, 2); // Right, Second element grid.Children.Add(txtcity = new Entry { Placeholder = "tz name" }, 1, 2); //grid.Children.Add(new Label { Text = "Btn",XAlign = TextAlignment.Center }, 0, 2, 3, 4); var gridButton = new Button { Text = "Add Timezone." }; gridButton.Clicked += async(sender, e) => { indicator.IsRunning = true; indicator.IsVisible = true; var timezonedto = new TimezoneDTO { UserId = user.objectId, Name = this.txtname.Text.ToString().Trim(), City = this.txtcity.Text.ToString().Trim(), GMT = gmtvalues[picker.Items[picker.SelectedIndex]] }; await Task.Run(async() => await tzviewModel.AddTz(timezonedto)); indicator.IsRunning = false; indicator.IsVisible = false; if (tzviewModel.Timezones.Count > 0) { DisplayAlert("Alert", "Se agrego el TimeZone con el Id, " + tzviewModel.Timezones[0].objectId, "OK"); //App.Current.MainPage = new NavigationPage(new TimezoneListPage(loginvm.AuthenticatedUser)); } else { DisplayAlert("Alert", "No fue agregado, intenta nuevamente", "OK"); } }; grid.Children.Add(gridButton, 0, 2, 3, 4); indicator = new ActivityIndicator { IsRunning = false, IsEnabled = true, IsVisible = false }; layout.Children.Add(grid); layout.Children.Add(indicator); Content = layout; }
public TimezonePage(UserDTO userdto) { this.user = userdto; this.tzviewModel= new TimeZoneVM(); var layout = new StackLayout { Orientation = StackOrientation.Vertical, Padding = 20 }; picker = new Picker { Title = "Gmt", VerticalOptions = LayoutOptions.CenterAndExpand }; foreach (string gmtkey in gmtvalues.Keys) { picker.Items.Add(gmtkey); } picker.SelectedIndex = 10; Grid grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, RowDefinitions = { //new RowDefinition { Height = GridLength.Auto }, //new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }, new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) } }, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) }, new ColumnDefinition { Width = new GridLength(200, GridUnitType.Absolute) } //new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }, //new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) } } }; grid.Children.Add(new Label { Text = "TZ Name" }, 0, 0); // Left, First element grid.Children.Add(txtname= new Entry { Placeholder = "tz name" }, 1, 0); // Right, First element grid.Children.Add(new Label { Text = "GMT" }, 0, 1); // Left, Second element grid.Children.Add(picker, 1, 1); // Right, Second element grid.Children.Add(new Label { Text = "City" }, 0, 2); // Right, Second element grid.Children.Add(txtcity= new Entry { Placeholder = "tz name" }, 1, 2); //grid.Children.Add(new Label { Text = "Btn",XAlign = TextAlignment.Center }, 0, 2, 3, 4); var gridButton = new Button { Text = "Add Timezone." }; gridButton.Clicked += async (sender, e) => { indicator.IsRunning = true; indicator.IsVisible=true; var timezonedto= new TimezoneDTO { UserId=user.objectId, Name= this.txtname.Text.ToString().Trim(), City= this.txtcity.Text.ToString().Trim(), GMT= gmtvalues[picker.Items[picker.SelectedIndex]] }; await Task.Run( async () => await tzviewModel.AddTz( timezonedto)); indicator.IsRunning = false; indicator.IsVisible=false; if (tzviewModel.Timezones.Count>0) DisplayAlert ("Alert", "Se agrego el TimeZone con el Id, "+tzviewModel.Timezones[0].objectId,"OK");//App.Current.MainPage = new NavigationPage(new TimezoneListPage(loginvm.AuthenticatedUser)); else DisplayAlert ("Alert", "No fue agregado, intenta nuevamente","OK"); }; grid.Children.Add(gridButton, 0, 2, 3, 4); indicator = new ActivityIndicator { IsRunning = false, IsEnabled=true, IsVisible=false }; layout.Children.Add(grid); layout.Children.Add (indicator); Content = layout; }