private void PhoneOne_Tap(object sender, System.Windows.Input.GestureEventArgs e) { IsBoxOneTapped = true; //Launch the Phone App with the emergency name and contact number if (IsReadOnlyOn == false) { IsPhonePickerOn = true; phoneNumberChooserTask.Show(); } else { PhoneCallTask phoneCallTask = new PhoneCallTask(); phoneCallTask.DisplayName = settings.EmergencyContactNameOne; phoneCallTask.PhoneNumber = settings.EmergencyContactNumberOne; if (phoneCallTask.PhoneNumber.Length == 0) { MessageBox.Show("Please enter an emergency phone contact number.", "Phone", MessageBoxButton.OK); } else { phoneCallTask.Show(); } } }
private void PhoneNumberChooserTask_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += new EventHandler <PhoneNumberResult>(phoneNumberChooserTask_Completed); phoneNumberChooserTask.Show(); }
private void Button_Click(object sender, RoutedEventArgs e) { var b = sender as Button; if (b != null) { string s = b.Tag as string; if (s != null) { switch (s) { case "phone": _numberPicker.Show(); break; case "email": _emailPicker.Show(); break; } return; } } string query = _search.Text; if (string.IsNullOrEmpty(query)) { return; } Search(query); }
private void ApplicationBarIconButton_Click(object sender, System.EventArgs e) { var nummerTask = new PhoneNumberChooserTask(); nummerTask.Completed += nummerTask_Completed; nummerTask.Show(); }
private void StartPhoneTask() { PhoneNumberChooserTask phn = new PhoneNumberChooserTask(); phn.Completed += new EventHandler <PhoneNumberResult>(phn_Complete); phn.Show(); }
private void AddPhoneButton_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += new EventHandler <PhoneNumberResult>(phoneNumberChooserTask_Completed); phoneNumberChooserTask.Show(); }
private void ApplicationBarAddContactButton_Click(object sender, EventArgs e) { // prompt for a contact var phoneNumberTask = new PhoneNumberChooserTask(); phoneNumberTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberTask_Completed); phoneNumberTask.Show(); }
private void btnScanNumber_Click(object sender, RoutedEventArgs e) { var newprod = dbConn.Insert(new Product() { ProductDescription = "Camisa Dockers" }); var newprod1 = dbConn.Insert(new Product() { ProductDescription = "Pantalón Levis" }); var newprod2 = dbConn.Insert(new Product() { ProductDescription = "Cinturón" }); string q2 = "UPDATE Product SET ProductDescription = 'Mantecadas' WHERE ProductDescription = ?"; txtProducts.Text = GetAllProducts(); dbConn.Execute(q2, "Cinturón"); txtProducts.Text = txtProducts.Text + GetAllProducts(); selNumber.Show(); }
private void btnSelectContact_Click(object sender, System.Windows.RoutedEventArgs e) { PhoneNumberChooserTask addChoser = new PhoneNumberChooserTask(); addChoser.Completed += new EventHandler <PhoneNumberResult>(addChoser_Completed); addChoser.Show(); }
private void PhoneDoctor_Tap(object sender, System.Windows.Input.GestureEventArgs e) { IsBoxOneTappedMed = true; if (IsReadOnlyOnMed == false) { IsPhonePickerOnMed = true; phoneNumberChooserTask.Show(); } else { PhoneCallTask phoneCallTask = new PhoneCallTask(); phoneCallTask.DisplayName = settings.MedDoctorsInfoName; phoneCallTask.PhoneNumber = settings.MedDoctorsInfoPhone; CompleteThePhoneCall(phoneCallTask); } }
private void ApplicationBarAddContactButton_Click(object sender, EventArgs e) { // prompt for a contact var phoneNumberTask = new PhoneNumberChooserTask(); phoneNumberTask.Completed += new EventHandler <PhoneNumberResult>(phoneNumberTask_Completed); phoneNumberTask.Show(); }
private void Button_clicked(object sender, RoutedEventArgs e) { Button current_button = (Button)sender; String button_name = current_button.Name; switch (button_name) { case "calculator": break; case "contacts": PhoneNumberChooserTask address = new PhoneNumberChooserTask(); address.Show(); break; case "clock": break; case "facebook": WebBrowserTask webBrowserTask1 = new WebBrowserTask(); webBrowserTask1.Uri = new Uri("http://www.facebook.com", UriKind.Absolute); webBrowserTask1.Show(); break; case "phone": phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed); try { phoneNumberChooserTask.Show(); } catch (System.InvalidOperationException ex) { MessageBox.Show("An error occurred."); } //PhoneCallTask phoneCallTask = new PhoneCallTask(); //phoneCallTask.PhoneNumber = "123456789"; //phoneCallTask.DisplayName = "Shadowfax Apps"; //phoneCallTask.Show(); break; case "mail": EmailComposeTask emailComposeTask = new EmailComposeTask(); emailComposeTask.Subject = ""; emailComposeTask.Body = ""; emailComposeTask.To = ""; emailComposeTask.Show(); break; case "safari": WebBrowserTask webBrowserTask4 = new WebBrowserTask(); webBrowserTask4.Uri = new Uri("http://www.google.com", UriKind.Absolute); webBrowserTask4.Show(); break; case "ipod": break; default: break; } }
private void makeCall_Click(object sender, RoutedEventArgs e) { var numberChooser = new PhoneNumberChooserTask(); numberChooser.Completed += (o, ne) => { var callTask = new PhoneCallTask(); callTask.PhoneNumber = ne.PhoneNumber; callTask.Show(); }; numberChooser.Show(); }
private void btnContacts_Click(object sender, RoutedEventArgs e) { try { _phoneNumberChooserTask.Show(); } catch (System.InvalidOperationException ex) { MessageBox.Show("An error occurred." + ex.Message); } }
private void phoneNumberChooser_Click(object sender, EventArgs e) { // with a local task, the completed event will be called when returning from dormant, // but WILL NOT be called when returning from tombstone. var task = new PhoneNumberChooserTask(); task.Completed += (object sender2, PhoneNumberResult e2) => { if (e2.Error == null && e2.TaskResult == TaskResult.OK) { System.Diagnostics.Debug.WriteLine("{0}: {1}", e2.DisplayName, e2.PhoneNumber); } }; task.Show(); }
/// <summary> /// Handles the Click event of the bButton control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param> private void bButton_Click(object sender, RoutedEventArgs e) { if (((SettingsViewModel)SettingsStackPanel.DataContext).SendMethodEnum == addressType.Email) { var email = new EmailAddressChooserTask(); email.Completed += email_Completed; email.Show(); } else { var sms = new PhoneNumberChooserTask(); sms.Completed += sms_Completed; sms.Show(); } }
public static void ChoosePhoneNumber(DataEventHandler <string> callback) { PhoneNumberChooserTask task = new PhoneNumberChooserTask(); task.Completed += (sender, e) => { if ((callback != null) && (e != null) && !String.IsNullOrEmpty(e.PhoneNumber)) { callback(null, new DataEventArgs <string>(e.PhoneNumber)); } }; task.Show(); }
private void Button_clicked(object sender, RoutedEventArgs e) { Button current_button = (Button)sender; String button_name = current_button.Name; switch (button_name) { case "phone": phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed); try { phoneNumberChooserTask.Show(); } catch (System.InvalidOperationException ex) { MessageBox.Show("An error occurred."); } //PhoneCallTask phoneCallTask = new PhoneCallTask(); //phoneCallTask.PhoneNumber = "123456789"; //phoneCallTask.DisplayName = "Shadowfax Apps"; //phoneCallTask.Show(); break; case "feedback": EmailComposeTask emailComposeTask = new EmailComposeTask(); emailComposeTask.Subject = "iPhone Skip App feedback"; emailComposeTask.Body = ""; emailComposeTask.To = "*****@*****.**"; emailComposeTask.Show(); break; case "website": WebBrowserTask webBrowserTask4 = new WebBrowserTask(); webBrowserTask4.Uri = new Uri("http://shadowfax-apps.blogspot.in/", UriKind.Absolute); webBrowserTask4.Show(); break; case "rate": MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask(); marketplaceReviewTask.Show(); break; default: break; } }
private void button1_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask task = new PhoneNumberChooserTask(); task.Completed += (s, evt) => { if (evt.Error == null && evt.TaskResult == TaskResult.OK) { temp = evt.PhoneNumber; if (temp != null && temp.Contains("+91")) temp = temp.Substring(3); else if (temp != null && temp.Substring(0, 2).Equals("91") && temp.Length > 10) temp = temp.Substring(2); textBox1.Text = temp; } }; task.Show(); }
private void Click_SMS(object sender, EventArgs e) { if (textBox1.Text != "") { Phone_Number_Chooser_Task = new PhoneNumberChooserTask(); Phone_Number_Chooser_Task.Completed += new EventHandler <PhoneNumberResult>(TaskChooserPhoneCompleted); try { Phone_Number_Chooser_Task.Show(); } catch (System.InvalidOperationException) { MessageBox.Show("Une erreur est survenue."); } } else { MessageBox.Show("La localisation n'est pas démarrée !"); } }
/// <summary> /// Handles the Click event of the bButton control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param> private void bButton_Click(object sender, RoutedEventArgs e) { var b = ((HyperlinkButton)sender); BindingExpression be = b.GetBindingExpression(ContentControl.ContentProperty); if (be != null) { _contactChooser = (Setting)be.DataItem; } if (_contactChooser.AddressType == addressType.Email) { var email = new EmailAddressChooserTask(); email.Completed += email_Completed; email.Show(); } else { var sms = new PhoneNumberChooserTask(); sms.Completed += sms_Completed; sms.Show(); } }
public static void SendSms(string body) { PhoneNumberChooserTask phoneChooseTask = new PhoneNumberChooserTask(); EventHandler <PhoneNumberResult> temp = (o, result) => { if (result.TaskResult == TaskResult.Cancel) { return; } SmsComposeTask smsComposeTask = new SmsComposeTask { To = result.PhoneNumber, Body = body }; smsComposeTask.Show(); }; phoneChooseTask.Completed -= temp; phoneChooseTask.Completed += temp; phoneChooseTask.Show(); }
private void SharePositionButton_Click(object sender, EventArgs e) { SmsComposeTask help = new SmsComposeTask(); if (_appSettings.Contains("phonenumber")) { help.To = _appSettings["phonenumber"].ToString(); help.Body = "HELP! My position is:" + Convert.ToString(Dataclass.latX) + " degrees latitude," + Convert.ToString(Dataclass.lonY) + " degrees longitude."; help.Show(); } else { var result1 = MessageBox.Show("Do you want to set default contacts?", "Tips", MessageBoxButton.OKCancel); if (result1 == MessageBoxResult.OK) { jd.Show(); } else { help.Body = "HELP! My position is:" + Convert.ToString(Dataclass.latX) + " degrees latitude," + Convert.ToString(Dataclass.lonY) + " degrees longitude."; help.Show(); } } }
private void Button_Click(object sender, RoutedEventArgs e) { but1Clicked = true; phNumChoseTask.Show(); }
private void Button_Click(object sender, RoutedEventArgs e) { phoneNumberChooserTask.Show(); }
private void btnPhone_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask task = new PhoneNumberChooserTask(); task.Completed += (s, evt) => { if (evt.Error == null && evt.TaskResult == TaskResult.OK) { MessageBox.Show(evt.PhoneNumber + " phone number selected!"); } }; task.Show(); }
void btnContactos_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask task = new PhoneNumberChooserTask(); task.Completed += task_Completed; task.Show(); }
private void btnChooseContact_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += phoneNumberChooser_Completed; phoneNumberChooserTask.Show(); }
private void AddPhoneButton_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed); phoneNumberChooserTask.Show(); }
private void create_click(object sender, RoutedEventArgs e) { phoneNumberChooserTask.Show(); }
private void Contactfn(object sender, System.Windows.Input.GestureEventArgs e) { PhoneNumberChooserTask chooser = new PhoneNumberChooserTask(); chooser.Show(); chooser.Completed += new EventHandler<PhoneNumberResult>(phonechoose_completed); }
public void ExecuteTask() { phoneNumberChooserTask.Show(); }
private void ContactNumberBox_GotFocus(object sender, RoutedEventArgs e) { if (ContactNumberBox.Text == "Emergency contact phone number") ContactNumberBox.Text = ""; PhoneNumberChooserTask pnct = new PhoneNumberChooserTask(); pnct.Completed += pnct_Completed; pnct.Show(); }
private void btnSendMess_Click(object sender, RoutedEventArgs e) { _choosePhoneNumberTask.Show(); }
private void PhoneNumber_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { pnct.Show(); }
private void btnSelecionar_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask _phone = new PhoneNumberChooserTask(); _phone.Completed += _phone_Completed; _phone.Show(); }
private void Call_Click(object sender, EventArgs e) { if (mPivot.SelectedItem == mDialerPivot) { string curNumber = mCurrentNumber.Text; if (string.IsNullOrEmpty(curNumber)) return; mCurrentNumber.Text = string.Empty; App.Call(curNumber, curNumber, NavigationService); } else { PhoneNumberChooserTask phoneTask = new PhoneNumberChooserTask(); phoneTask.Completed += (o, r) => { if (r.TaskResult != TaskResult.OK) return; Dispatcher.BeginInvoke(() => { App.Call(r.PhoneNumber, r.PhoneNumber, NavigationService); }); }; phoneTask.Show(); } }
private void btnSms_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask contactsTask = new PhoneNumberChooserTask(); contactsTask.Completed += (s, evt) => { if (evt.Error == null && evt.TaskResult == TaskResult.OK) { SmsComposeTask smsTask = new SmsComposeTask(); smsTask.Body = "Insert text from your application here."; smsTask.To = evt.PhoneNumber; smsTask.Show(); } }; contactsTask.Show(); }
//retreiving phone number private void button1_Click(object sender, RoutedEventArgs e) { try { PhoneNumberChooserTask task = new PhoneNumberChooserTask(); task.Completed += (s, evt) => { if (evt.Error == null && evt.TaskResult == TaskResult.OK) { temp = evt.PhoneNumber; if (temp != null && temp[0] == '0' && temp.Length > 10) temp = temp.Substring(1); else if (temp != null && temp.Contains("+91")) temp = temp.Substring(3); else if (temp != null && temp.Substring(0, 2).Equals("91") && temp.Length > 10) temp = temp.Substring(2); temp = temp.Replace("-", ""); temp = temp.Replace("(", ""); temp = temp.Replace(")", ""); temp = temp.Replace(" ", ""); if (textBox1.Text == string.Empty) textBox1.Text = temp; else textBox1.Text += "," + temp; } }; task.Show(); } catch (Exception exce) { } }
private void button1_Click(object sender, RoutedEventArgs e) { phonenumberchooser.Show(); }
private void Button_clicked(object sender, RoutedEventArgs e) { Button current_button = (Button)sender; String button_name = current_button.Name; switch (button_name) { case "message": //MessageBox.Show("message button clicked"); SmsComposeTask sms = new SmsComposeTask(); sms.To = ""; sms.Show(); break; case "calendar": //MessageBox.Show("Canlendar button clicked"); WebBrowserTask webBrowserTask1 = new WebBrowserTask(); webBrowserTask1.Uri = new Uri("http://calendar.google.com/", UriKind.Absolute); webBrowserTask1.Show(); break; case "photos": PhotoChooserTask photo = new PhotoChooserTask(); photo.Show(); break; case "camera": CameraCaptureTask cam = new CameraCaptureTask(); cam.Show(); break; case "youtube": WebBrowserTask webBrowserTask2 = new WebBrowserTask(); webBrowserTask2.Uri = new Uri("http://m.youtube.com/", UriKind.Absolute); webBrowserTask2.Show(); break; case "stocks": break; case "maps": //MessageBox.Show("maps clicked"); BingMapsTask bmt = new BingMapsTask(); //bmt.Center = new GeoCoordinate(-27.5, 153); bmt.SearchTerm = "New York"; bmt.Show(); break; case "weather": WebBrowserTask webBrowserTask3 = new WebBrowserTask(); webBrowserTask3.Uri = new Uri("http://www.weather.com/", UriKind.Absolute); webBrowserTask3.Show(); break; case "notes": break; case "voice_memos": break; case "itunes": MarketplaceHubTask market1 = new MarketplaceHubTask(); market1.Show(); break; case "app_store": MarketplaceHubTask market = new MarketplaceHubTask(); market.Show(); break; case "settings": break; case "phone": phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed); try { phoneNumberChooserTask.Show(); } catch (System.InvalidOperationException ex) { MessageBox.Show("An error occurred."); } //PhoneCallTask phoneCallTask = new PhoneCallTask(); //phoneCallTask.PhoneNumber = "123456789"; //phoneCallTask.DisplayName = "Shadowfax Apps"; //phoneCallTask.Show(); break; case "mail": EmailComposeTask emailComposeTask = new EmailComposeTask(); emailComposeTask.Subject = ""; emailComposeTask.Body = ""; emailComposeTask.To = ""; emailComposeTask.Show(); break; case "safari": WebBrowserTask webBrowserTask4 = new WebBrowserTask(); webBrowserTask4.Uri = new Uri("http://www.google.com", UriKind.Absolute); webBrowserTask4.Show(); break; case "ipod": break; default: break; } }
private void Compose_Click(object sender, EventArgs e) { if (mPivot.SelectedItem == mDialerPivot) { string curNumber = mCurrentNumber.Text; if (string.IsNullOrEmpty(curNumber)) return; mCurrentNumber.Text = string.Empty; Dispatcher.BeginInvoke(() => { NavigationService.Navigate(new Uri(string.Format("/ConversationPage.xaml?phone={0}", Uri.EscapeDataString(curNumber)), UriKind.Relative)); }); } else { PhoneNumberChooserTask phoneTask = new PhoneNumberChooserTask(); phoneTask.Completed += (o, r) => { if (r.TaskResult != TaskResult.OK) return; Dispatcher.BeginInvoke(() => { NavigationService.Navigate(new Uri(string.Format("/ConversationPage.xaml?phone={0}", Uri.EscapeDataString(r.PhoneNumber)), UriKind.Relative)); }); }; try { phoneTask.Show(); } catch (Exception) { } } }
private void invite_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask pct = new PhoneNumberChooserTask(); pct.Show(); }
private void RenderEditTaskField(Task task, FieldType fieldType) { PropertyInfo pi; // make sure the property exists on the local type try { pi = task.GetType().GetProperty(fieldType.Name); if (pi == null) return; // see comment below } catch (Exception) { // we can't do anything with this property since we don't have it on the local type // this indicates that the phone software isn't caught up with the service version return; } // get the value of the property var val = pi.GetValue(task, null); ListBoxItem listBoxItem = new ListBoxItem(); StackPanel EditStackPanel = new StackPanel(); listBoxItem.Content = EditStackPanel; EditStackPanel.Children.Add( new TextBlock() { Text = fieldType.DisplayName, Style = (Style)App.Current.Resources["PhoneTextNormalStyle"] }); // create a textbox (will be used by the majority of field types) double minWidth = App.Current.RootVisual.RenderSize.Width; if ((int)minWidth == 0) minWidth = ((this.Orientation & PageOrientation.Portrait) == PageOrientation.Portrait) ? 480.0 : 800.0; TextBox tb = new TextBox() { DataContext = taskCopy, MinWidth = minWidth, IsTabStop = true }; tb.SetBinding(TextBox.TextProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); bool notMatched = false; // render the right control based on the type switch (fieldType.DisplayType) { case "String": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "TextBox": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.AcceptsReturn = true; tb.TextWrapping = TextWrapping.Wrap; tb.Height = 300; tb.TabIndex = tabIndex++; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); EditStackPanel.Children.Add(tb); break; case "Phone": case "PhoneNumber": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.TelephoneNumber } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; StackPanel innerPanel = RenderEditTaskImageButtonPanel(tb); ImageButton imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { PhoneNumberChooserTask chooser = new PhoneNumberChooserTask(); chooser.Completed += new EventHandler<PhoneNumberResult>((sender, e) => { if (e.TaskResult == TaskResult.OK && e.PhoneNumber != null && e.PhoneNumber != "") pi.SetValue(task, e.PhoneNumber, null); }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case "Website": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Url } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "Email": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.EmailSmtpAddress } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); innerPanel = RenderEditTaskImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler<EmailResult>((sender, e) => { if (e.TaskResult == TaskResult.OK && e.Email != null && e.Email != "") pi.SetValue(task, e.Email, null); }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case "Location": case "Address": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.AddressStreet }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCity }, new InputScopeName() { NameValue = InputScopeNameValue.AddressStateOrProvince }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCountryName }, } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); innerPanel = RenderEditTaskImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { // start the location service GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.MovementThreshold = 20; // Use MovementThreshold to ignore noise in the signal. watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>((sender, e) => { if (e.Status == GeoPositionStatus.Ready) { // Use the Position property of the GeoCoordinateWatcher object to get the current location. GeoCoordinate co = watcher.Position.Location; tb.Text = co.Latitude.ToString("0.000") + "," + co.Longitude.ToString("0.000"); //Stop the Location Service to conserve battery power. watcher.Stop(); } }); watcher.Start(); }); EditStackPanel.Children.Add(innerPanel); break; case "Priority": ListPicker lp = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate) App.Current.Resources["FullListPickerTemplate"], IsTabStop = true }; lp.ItemsSource = App.ViewModel.Constants.Priorities; lp.DisplayMemberPath = "Name"; int? lpval = (int?)pi.GetValue(taskCopy, null); if (lpval != null) lp.SelectedIndex = (int)lpval; else lp.SelectedIndex = 1; // HACK: hardcode to "Normal" priority. this should come from a table. lp.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(taskCopy, lp.SelectedIndex == 1 ? (int?)null : lp.SelectedIndex, null); }); lp.TabIndex = tabIndex++; EditStackPanel.Children.Add(lp); break; case "TaskList": ListPicker taskListPicker = new ListPicker() { MinWidth = minWidth, IsTabStop = true }; taskListPicker.ItemsSource = App.ViewModel.TaskLists; taskListPicker.DisplayMemberPath = "Name"; TaskList tl = App.ViewModel.TaskLists.FirstOrDefault(list => list.ID == taskList.ID); taskListPicker.SelectedIndex = App.ViewModel.TaskLists.IndexOf(tl); taskListPicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(taskCopy, App.ViewModel.TaskLists[taskListPicker.SelectedIndex].ID, null); }); taskListPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(taskListPicker); break; case "Integer": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Digits } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, Convert.ToInt32(tb.Text), null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "Date": DatePicker dp = new DatePicker() { DataContext = taskCopy, MinWidth = minWidth, IsTabStop = true }; dp.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { pi.SetValue(taskCopy, dp.Value, null); taskList.NotifyPropertyChanged("FirstDue"); taskList.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case "Boolean": CheckBox cb = new CheckBox() { DataContext = taskCopy, IsTabStop = true }; cb.SetBinding(CheckBox.IsCheckedProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; case "TagList": TextBox taglist = new TextBox() { MinWidth = minWidth, IsTabStop = true }; taglist.KeyUp += new KeyEventHandler(TextBox_KeyUp); taglist.TabIndex = tabIndex++; RenderEditTaskTagList(taglist, taskCopy, pi); EditStackPanel.Children.Add(taglist); break; case "ListPointer": innerPanel = RenderEditTaskListPointer(pi, minWidth); EditStackPanel.Children.Add(innerPanel); break; default: notMatched = true; break; } // if wasn't able to match field type by display type, try matching by CLR type if (notMatched == true) { string typename = GetTypeName(pi); switch (typename) { case "String": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "Int32": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Digits } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, Convert.ToInt32(tb.Text), null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "DateTime": DatePicker dp = new DatePicker() { DataContext = taskCopy, MinWidth = minWidth, IsTabStop = true }; dp.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { pi.SetValue(taskCopy, dp.Value, null); taskList.NotifyPropertyChanged("FirstDue"); taskList.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case "Boolean": CheckBox cb = new CheckBox() { DataContext = taskCopy, IsTabStop = true }; cb.SetBinding(CheckBox.IsEnabledProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; default: break; } } // add the listboxitem to the listbox EditListBox.Items.Add(listBoxItem); }
private void phoneNumberChooser_Click(object sender, EventArgs e) { // with a local task, the completed event will be called when returning from dormant, // but WILL NOT be called when returning from tombstone. var task = new PhoneNumberChooserTask(); task.Completed += (object sender2, PhoneNumberResult e2) => { if (e2.Error == null && e2.TaskResult == TaskResult.OK) System.Diagnostics.Debug.WriteLine("{0}: {1}", e2.DisplayName, e2.PhoneNumber); }; task.Show(); }
private void RenderEditItemField(Item item, Field field) { // skip rendering a hidden field if (field.DisplayType == DisplayTypes.Hidden) return; PropertyInfo pi = null; object currentValue = null; object container = null; // get the current field value. // the value can either be in a strongly-typed property on the item (e.g. Name), // or in one of the FieldValues try { // get the strongly typed property pi = item.GetType().GetProperty(field.Name); if (pi != null) { // store current item's value for this field currentValue = pi.GetValue(item, null); // set the container - this will be the object that will be passed // to pi.SetValue() below to poke new values into container = itemCopy; } } catch (Exception) { // an exception indicates this isn't a strongly typed property on the Item // this is NOT an error condition } // if couldn't find a strongly typed property, this property is stored as a // FieldValue on the item if (pi == null) { // get current item's value for this field, or create a new FieldValue // if one doesn't already exist FieldValue fieldValue = item.GetFieldValue(field.ID, true); currentValue = fieldValue.Value; // get the value property of the current fieldvalue (this should never fail) pi = fieldValue.GetType().GetProperty("Value"); if (pi == null) return; // set the container - this will be the object that will be passed // to pi.SetValue() below to poke new values into container = fieldValue; } ListBoxItem listBoxItem = new ListBoxItem(); StackPanel EditStackPanel = new StackPanel(); listBoxItem.Content = EditStackPanel; EditStackPanel.Children.Add( new TextBlock() { Text = field.DisplayName, Style = (Style)App.Current.Resources["PhoneTextNormalStyle"] }); // create a textbox (will be used by the majority of field types) double minWidth = App.Current.RootVisual.RenderSize.Width; if ((int)minWidth == 0) minWidth = ((this.Orientation & PageOrientation.Portrait) == PageOrientation.Portrait) ? 480.0 : 800.0; TextBox tb = new TextBox() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; tb.SetBinding(TextBox.TextProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); bool notMatched = false; // render the right control based on the DisplayType switch (field.DisplayType) { case DisplayTypes.Text: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case DisplayTypes.TextArea: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.AcceptsReturn = true; tb.TextWrapping = TextWrapping.Wrap; tb.Height = 150; tb.TabIndex = tabIndex++; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); EditStackPanel.Children.Add(tb); break; case DisplayTypes.Phone: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.TelephoneNumber } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.MinWidth -= 64; tb.MaxWidth = tb.MinWidth; StackPanel innerPanel = RenderImageButtonPanel(tb); ImageButton imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { PhoneNumberChooserTask chooser = new PhoneNumberChooserTask(); chooser.Completed += new EventHandler<PhoneNumberResult>((sender, e) => { if (e.TaskResult == TaskResult.OK && e.PhoneNumber != null && e.PhoneNumber != "") pi.SetValue(container, e.PhoneNumber, null); }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.Link: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Url } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case DisplayTypes.Email: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.EmailSmtpAddress } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); tb.MinWidth -= 64; tb.MaxWidth = tb.MinWidth; innerPanel = RenderImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler<EmailResult>((s, e) => { if (e.TaskResult == TaskResult.OK && !String.IsNullOrEmpty(e.Email)) { pi.SetValue(container, e.Email, null); // find the contact using the email address Contacts contacts = new Contacts(); contacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>((sen, ev) => { // save the contact info as a new contact var contact = ev.Results.FirstOrDefault(); if (contact == null) return; ContactPickerHelper.AddContactInfo(contact, item); }); contacts.SearchAsync(e.Email, FilterKind.EmailAddress, null); } }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.Address: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.AddressStreet }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCity }, new InputScopeName() { NameValue = InputScopeNameValue.AddressStateOrProvince }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCountryName }, } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); tb.MinWidth -= 64; tb.MaxWidth = tb.MinWidth; innerPanel = RenderImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { // start the location service GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.MovementThreshold = 20; // Use MovementThreshold to ignore noise in the signal. watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>((sender, e) => { if (e.Status == GeoPositionStatus.Ready) { // Use the Position property of the GeoCoordinateWatcher object to get the current location. GeoCoordinate co = watcher.Position.Location; tb.Text = co.Latitude.ToString("0.000") + "," + co.Longitude.ToString("0.000"); // Stop the Location Service to conserve battery power. watcher.Stop(); // also store the latlong information in a hidden LatLong FieldValue var latlong = item.GetFieldValue(FieldNames.LatLong, true); if (latlong != null) latlong.Value = tb.Text; } }); watcher.Start(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.Priority: ListPicker lp = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate)App.Current.Resources["FullListPickerTemplate"], IsTabStop = true }; lp.ItemsSource = App.ViewModel.Constants.Priorities; lp.DisplayMemberPath = "Name"; int? lpval = (int?)pi.GetValue(container, null); if (lpval != null) lp.SelectedIndex = (int)lpval; else lp.SelectedIndex = 1; // HACK: hardcode to "Normal" priority. this should come from a table. lp.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, lp.SelectedIndex == 1 ? (int?)null : lp.SelectedIndex, null); }); lp.TabIndex = tabIndex++; EditStackPanel.Children.Add(lp); break; case DisplayTypes.Folders: ListPicker folderPicker = new ListPicker() { MinWidth = minWidth, IsTabStop = true }; folderPicker.ItemsSource = App.ViewModel.Folders; folderPicker.DisplayMemberPath = "Name"; Folder tl = App.ViewModel.Folders.FirstOrDefault(list => list.ID == folder.ID); folderPicker.SelectedIndex = App.ViewModel.Folders.IndexOf(tl); folderPicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, App.ViewModel.Folders[folderPicker.SelectedIndex].ID, null); }); folderPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(folderPicker); break; case DisplayTypes.Lists: ListPicker listPicker = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate)App.Current.Resources["FullListPickerTemplate"], ExpansionMode = ExpansionMode.FullScreenOnly, IsTabStop = true }; var lists = App.ViewModel.Items. Where(i => i.FolderID == item.FolderID && i.IsList == true && i.ItemTypeID != SystemItemTypes.Reference). OrderBy(i => i.Name). ToObservableCollection(); lists.Insert(0, new Item() { ID = Guid.Empty, Name = folder.Name + " (folder)" }); listPicker.ItemsSource = lists; listPicker.DisplayMemberPath = "Name"; var listGuid = currentValue != null ? (Guid) currentValue : Guid.Empty; Item thisItem = lists.FirstOrDefault(i => i.ID == (Guid) listGuid); // if the list isn't found (e.g. ParentID == null), SelectedIndex will default to the Folder scope (which is correct for that case) listPicker.SelectedIndex = Math.Max(lists.IndexOf(thisItem), 0); listPicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, lists[listPicker.SelectedIndex].ID, null); }); listPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(listPicker); break; case DisplayTypes.DatePicker: DatePicker dp = new DatePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; DateTime date = Convert.ToDateTime((string)currentValue); if (date.Ticks == 0) date = DateTime.Now.Date; dp.Value = date; dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { //pi.SetValue(container, dp.Value, null); pi.SetValue(container, dp.Value == null ? null : ((DateTime)dp.Value).ToString("d"), null); folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case DisplayTypes.DateTimePicker: // create date picker DatePicker datePicker = new DatePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; // set up two-way data binding so that we don't have to pick up the new value in the event handler datePicker.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); datePicker.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); datePicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(datePicker); // create time picker TimePicker timePicker = new TimePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; // set up two-way data binding so that we don't have to pick up the new value in the event handler timePicker.SetBinding(TimePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); timePicker.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); timePicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(timePicker); break; case DisplayTypes.Checkbox: CheckBox cb = new CheckBox() { DataContext = container, IsTabStop = true }; cb.SetBinding(CheckBox.IsCheckedProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; case DisplayTypes.TagList: TextBox taglist = new TextBox() { MinWidth = minWidth, IsTabStop = true }; taglist.KeyUp += new KeyEventHandler(TextBox_KeyUp); taglist.TabIndex = tabIndex++; RenderEditItemTagList(taglist, (Item) container, pi); EditStackPanel.Children.Add(taglist); break; case DisplayTypes.ImageUrl: // TODO: wire up to picture picker, and upload to an image service break; case DisplayTypes.LinkArray: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Url } } }; tb.AcceptsReturn = true; tb.TextWrapping = TextWrapping.Wrap; tb.Height = 150; tb.TabIndex = tabIndex++; tb.ClearValue(TextBox.TextProperty); if (!String.IsNullOrEmpty((string) currentValue)) { try { var linkList = JsonConvert.DeserializeObject<List<Link>>((string)currentValue); tb.Text = String.Concat(linkList.Select(l => l.Name != null ? l.Name + "," + l.Url + "\n" : l.Url + "\n").ToList()); } catch (Exception) { } } tb.LostFocus += new RoutedEventHandler(delegate { // the expected format is a newline-delimited list of Name, Url pairs var linkArray = tb.Text.Split(new char[] { '\r','\n' }, StringSplitOptions.RemoveEmptyEntries); var linkList = new List<Link>(); foreach (var link in linkArray) { var nameval = link.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (nameval.Length == 0) continue; if (nameval.Length == 1) linkList.Add(new Link() { Url = nameval[0].Trim() }); else linkList.Add(new Link() { Name = nameval[0].Trim(), Url = nameval[1].Trim() }); } var json = JsonConvert.SerializeObject(linkList); pi.SetValue(container, json, null); }); EditStackPanel.Children.Add(tb); break; case DisplayTypes.Hidden: // skip rendering break; case DisplayTypes.ContactList: Item currentContacts = CreateValueList(item, field, currentValue == null ? Guid.Empty : new Guid((string) currentValue)); var contactPicker = new ItemRefListPicker(folder, currentContacts, SystemItemTypes.Contact, pi, container) { MinWidth = minWidth, IsTabStop = true }; contactPicker.TabIndex = tabIndex++; contactPicker.MinWidth -= 84; contactPicker.MaxWidth = contactPicker.MinWidth; innerPanel = RenderImageButtonPanel(contactPicker, "/Images/button.add.png", "/Images/button.add.pressed.png"); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler<EmailResult>((s, e) => { if (e.TaskResult == TaskResult.OK && !String.IsNullOrEmpty(e.Email)) { // find the contact using the email address Contacts contacts = new Contacts(); contacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>((sen, ev) => { // save the contact info as a new contact var contact = ev.Results.FirstOrDefault(); if (contact == null) return; var newContact = ContactPickerHelper.ProcessContact(contact); if (newContact != null) { // if the list doesn't yet exist, create it now if (currentContacts.ID == Guid.Empty) { Guid id = Guid.NewGuid(); currentContacts.ID = id; // enqueue the Web Request Record RequestQueue.EnqueueRequestRecord(RequestQueue.UserQueue, new RequestQueue.RequestRecord() { ReqType = RequestQueue.RequestRecord.RequestType.Insert, Body = currentContacts }); // add the list to the folder folder.Items.Add(currentContacts); StorageHelper.WriteFolder(folder); // store the list's Guid in the item's property pi.SetValue(container, id.ToString(), null); } // rebuild the image panel with a new ItemRefListPicker HandleAddedContact(currentContacts, newContact); var oldListPicker = innerPanel.Children[0] as ItemRefListPicker; contactPicker = new ItemRefListPicker(folder, currentContacts, SystemItemTypes.Contact, pi, container) { IsTabStop = true }; if (oldListPicker != null) { contactPicker.TabIndex = oldListPicker.TabIndex; contactPicker.MinWidth = oldListPicker.MinWidth; contactPicker.MaxWidth = oldListPicker.MaxWidth; } innerPanel.Children[0] = contactPicker; } }); contacts.SearchAsync(e.Email, FilterKind.EmailAddress, null); } }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.LocationList: Item currentLocations = CreateValueList(item, field, currentValue == null ? Guid.Empty : new Guid((string) currentValue)); var locationPicker = new ItemRefListPicker(folder, currentLocations, SystemItemTypes.Location, pi, container) { MinWidth = minWidth, IsTabStop = true }; locationPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(locationPicker); break; case DisplayTypes.ItemTypes: ListPicker itemTypePicker = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate)App.Current.Resources["FullListPickerTemplate"], ExpansionMode = ExpansionMode.FullScreenOnly, IsTabStop = true }; var itemTypes = App.ViewModel.ItemTypes.Where(i => i.UserID != SystemUsers.System).OrderBy(i => i.Name).ToList(); itemTypePicker.ItemsSource = itemTypes; itemTypePicker.DisplayMemberPath = "Name"; ItemType thisItemType = itemTypes.FirstOrDefault(i => i.ID == (Guid) currentValue); itemTypePicker.SelectedIndex = Math.Max(itemTypes.IndexOf(thisItemType), 0); itemTypePicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, itemTypes[itemTypePicker.SelectedIndex].ID, null); }); itemTypePicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(itemTypePicker); break; default: notMatched = true; break; } // if wasn't able to match field type by display type, try matching by FieldType if (notMatched == true) { switch (field.FieldType) { case FieldTypes.String: default: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case FieldTypes.Integer: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Digits } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, Convert.ToInt32(tb.Text), null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case FieldTypes.DateTime: DatePicker dp = new DatePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; dp.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { pi.SetValue(container, dp.Value, null); folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case FieldTypes.Boolean: CheckBox cb = new CheckBox() { DataContext = container, IsTabStop = true }; cb.SetBinding(CheckBox.IsEnabledProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; } } // add the listboxitem to the listbox EditListBox.Items.Add(listBoxItem); }
private void button1_Click(object sender, RoutedEventArgs e) { pnc.Show(); }