public static void RegisterButtonMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.UIControl.ClickEvent.Override <UIButton>()); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.UIButton.Title, (info, button) => button.CurrentTitle, (info, button, arg3) => button.SetTitle(arg3, UIControlState.Normal))); }
public static void RegisterDataGridViewMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.Object.ItemsSource.Override <DataGridView>()); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.Object.ItemsSource.Override <DataGridView>(), (info, view) => view.DataSource as IEnumerable, (info, view, value) => { view.DataSource = value; view.Refresh(); }, nameof(DataGridView.DataSourceChanged))); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.DataGridView.SelectedItem, GetSelectedItemDataGridView, SetSelectedItemDataGridView, (info, view, arg3) => { arg3 = arg3.ToWeakEventListener(); EventHandler handler = null; handler = (sender, args) => { var gridView = (DataGridView)sender; Action <DataGridView, IEventListener, EventHandler> action = (dataGridView, listener, eventHandler) => { if (!listener.TryHandle(dataGridView, EventArgs.Empty)) { dataGridView.CurrentCellChanged -= eventHandler; } }; //To prevent this exception 'Operation not valid because it results in a reentrant call to the SetCurrentCellAddressCore function' gridView.BeginInvoke(action, gridView, arg3, handler); }; view.CurrentCellChanged += handler; return(WeakActionToken.Create(view, handler, (gridView, eventHandler) => gridView.CurrentCellChanged -= eventHandler)); })); }
public static void RegisterStringElementMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <StringElement>(nameof(StringElement.Value)); MemberProvider.Register(AttachedBindingMember.CreateMember <StringElement, string>(nameof(StringElement.Value), (info, element) => element.Value, (info, element, arg3) => { element.Value = arg3; element.Reload(); })); MemberProvider.Register(AttachedBindingMember.CreateEvent(AttachedMembers.StringElement.TappedEvent, (info, element, arg3) => { var weakWrapper = arg3.ToWeakWrapper(); IDisposable unsubscriber = null; Action action = () => { if (!weakWrapper.EventListener.TryHandle(weakWrapper.EventListener, EventArgs.Empty)) { unsubscriber.Dispose(); } }; unsubscriber = WeakActionToken.Create(element, action, (stringElement, nsAction) => stringElement.Tapped -= nsAction); element.Tapped += action; return(unsubscriber); })); }
public static void RegisterDialogEntryElementMembers() { var field = typeof(EntryElement).GetField("entry", BindingFlags.NonPublic | BindingFlags.Instance); if (field != null && field.FieldType == typeof(UITextField)) { var getEntryField = ServiceProvider.ReflectionManager.GetMemberGetter <UITextField>(field); TouchBindingErrorProvider.TryGetEntryField = target => { var element = target as EntryElement; if (element != null) { target = getEntryField(element); } return(target); }; } BindingBuilderExtensions.RegisterDefaultBindingMember <EntryElement>(nameof(EntryElement.Value)); var member = MemberProvider.GetBindingMember(typeof(EntryElement), nameof(EntryElement.Changed), true, false); if (member != null) { MemberProvider.Register(AttachedBindingMember.CreateEvent <EntryElement>("ValueChanged", (info, element, arg3) => member.TryObserve(element, arg3))); } }
public static void RegisterTableViewMembers() { BindingServiceProvider.ResourceResolver.AddType(typeof(UITableViewRowAnimation)); BindingServiceProvider.ResourceResolver.AddType(typeof(UITableViewScrollPosition)); BindingServiceProvider.BindingMemberPriorities[AttachedMembers.UITableView.UseAnimations] = BindingServiceProvider.TemplateMemberPriority + 1; BindingServiceProvider.BindingMemberPriorities[AttachedMembers.UITableView.AddAnimation] = BindingServiceProvider.TemplateMemberPriority + 1; BindingServiceProvider.BindingMemberPriorities[AttachedMembers.UITableView.RemoveAnimation] = BindingServiceProvider.TemplateMemberPriority + 1; BindingServiceProvider.BindingMemberPriorities[AttachedMembers.UITableView.ReplaceAnimation] = BindingServiceProvider.TemplateMemberPriority + 1; BindingServiceProvider.BindingMemberPriorities[AttachedMembers.UITableView.ScrollPosition] = BindingServiceProvider.TemplateMemberPriority + 1; BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.UIView.ItemsSource.Override <UITableView>()); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableView.AddAnimation)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableView.RemoveAnimation)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableView.ReplaceAnimation)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableView.ScrollPosition)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableView.UseAnimations)); MemberProvider.Register(AttachedBindingMember.CreateEvent(AttachedMembers.UITableView.SelectedItemChangedEvent)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UIView.ItemsSource.Override <UITableView>(), TableViewItemsSourceChanged)); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.UITableView.SelectedItem, GetTableViewSelectedItem, SetTableViewSelectedItem, (info, view, arg3) => (IDisposable)view.SetBindingMemberValue(AttachedMembers.UITableView.SelectedItemChangedEvent, arg3))); var itemTemplateMember = AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableView.ItemTemplateSelector, (view, args) => args.NewValue?.Initialize(view)); MemberProvider.Register(itemTemplateMember); MemberProvider.Register(typeof(UITableView), AttachedMemberConstants.ItemTemplate, itemTemplateMember, true); }
public static void RegisterSegmentedControlMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <UISegmentedControl>(nameof(UISegmentedControl.SelectedSegment)); MemberProvider.Register(AttachedBindingMember.CreateMember <UISegmentedControl, int>(nameof(UISegmentedControl.SelectedSegment), (info, control) => (int)control.SelectedSegment, (info, control, arg3) => control.SelectedSegment = arg3, nameof(UISegmentedControl.ValueChanged))); }
public static void RegisterTwoStatePreferenceMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <TwoStatePreference>(nameof(TwoStatePreference.Checked)); if (_valueChangedEventMember != null) { BindingServiceProvider.MemberProvider.Register(typeof(TwoStatePreference), "CheckedChanged", _valueChangedEventMember, true); } }
public static void RegisterPreferenceMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.Preference.Click); var changeMember = AttachedBindingMember.CreateEvent(AttachedMembers.Preference.ValueChangedEvent); BindingServiceProvider.MemberProvider.Register(changeMember); _valueChangedEventMember = changeMember; }
public static void RegisterEditTextPreferenceMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <EditTextPreference>(nameof(EditTextPreference.Text)); if (_valueChangedEventMember != null) { BindingServiceProvider.MemberProvider.Register(typeof(EditTextPreference), "TextChanged", _valueChangedEventMember, true); } }
public static void RegisterTextViewMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <UITextView>(nameof(UITextView.Text)); NSNotificationCenter.DefaultCenter.AddObserver(UITextView.TextDidChangeNotification, TextDidChangeNotification); var memberInfo = AttachedBindingMember.CreateEvent(AttachedMembers.UITextView.TextChangedEvent, SetTextFieldTextChanged); AttachedBindingMember.TrySetRaiseAction(memberInfo, RaiseTextChanged); MemberProvider.Register(memberInfo); }
public static void RegisterComboBoxMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.Object.ItemsSource.Override <ComboBox>()); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.Object.ItemsSource.Override <ComboBox>(), (info, box) => box.DataSource as IEnumerable, (info, box, value) => box.DataSource = value, nameof(ComboBox.DataSourceChanged))); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.ComboBox.SelectedItem, (info, box) => box.SelectedItem, (info, box, value) => box.SelectedItem = value, nameof(ComboBox.SelectedIndexChanged))); }
public static void RegisterTextBlockMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <TextBlock>(nameof(TextBlock.Text)); #if WINDOWS_UWP MemberProvider.Register(AttachedBindingMember.CreateMember <TextBlock, string>(nameof(TextBlock.Text), (info, box) => box.Text, (info, box, value) => box.Text = value ?? string.Empty, ObserveTextTextBlock)); #endif }
private static void Register(IBindingMemberProvider memberProvider) { Should.NotBeNull(memberProvider, "memberProvider"); BindingBuilderExtensions.RegisterDefaultBindingMember <TextBlock>(() => t => t.Text); BindingBuilderExtensions.RegisterDefaultBindingMember <TextBox>(() => t => t.Text); BindingBuilderExtensions.RegisterDefaultBindingMember <Button>("Click"); BindingBuilderExtensions.RegisterDefaultBindingMember <ComboBox>(() => c => c.ItemsSource); BindingBuilderExtensions.RegisterDefaultBindingMember <ListBox>(() => c => c.ItemsSource); BindingBuilderExtensions.RegisterDefaultBindingMember <ProgressBar>(() => c => c.Value); //UIElement memberProvider.Register(AttachedBindingMember.CreateMember <UIElement, bool>("Visible", (info, view) => view.Visibility == Visibility.Visible, (info, view, value) => view.Visibility = value ? Visibility.Visible : Visibility.Collapsed, ObserveVisiblityMember)); memberProvider.Register(AttachedBindingMember.CreateMember <UIElement, bool>("Hidden", (info, view) => view.Visibility != Visibility.Visible, (info, view, value) => view.Visibility = value ? Visibility.Collapsed : Visibility.Visible, ObserveVisiblityMember)); //FrameworkElement memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, object>(AttachedMemberConstants.Parent, GetParentValue, SetParentValue, ObserveParentMember)); memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, object>(AttachedMemberConstants.FindByNameMethod, FindByNameMemberImpl)); #if SILVERLIGHT || WINDOWSCOMMON || WINDOWS_PHONE memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, bool>(AttachedMemberConstants.Focused, (info, control) => FocusManager.GetFocusedElement() == control, null, "LostFocus")); memberProvider.Register(AttachedBindingMember .CreateMember <Control, bool>(AttachedMemberConstants.Enabled, (info, control) => control.IsEnabled, (info, control, value) => control.IsEnabled = value)); #else memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, bool>(AttachedMemberConstants.Focused, (info, control) => control.IsFocused, null, "LostFocus")); memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, bool>(AttachedMemberConstants.Enabled, (info, control) => control.IsEnabled, (info, control, value) => control.IsEnabled = value, "IsEnabledChanged")); #endif //TextBox #if WINDOWSCOMMON memberProvider.Register(AttachedBindingMember.CreateMember <TextBox, string>("Text", (info, box) => box.Text, (info, box, value) => box.Text = value ?? string.Empty, "TextChanged")); //TextBlock memberProvider.Register(AttachedBindingMember.CreateMember <TextBlock, string>("Text", (info, box) => box.Text, (info, box, value) => box.Text = value ?? string.Empty, ObserveTextTextBlock)); #else //WebBrowser memberProvider.Register(AttachedBindingMember.CreateMember <WebBrowser, Uri>("Source", (info, browser) => browser.Source, (info, browser, arg3) => browser.Source = arg3, "Navigated")); #endif }
public static void RegisterPreferenceGroupMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.PreferenceGroup.ItemsSource); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.PreferenceGroup.ItemsSource, PreferenceGroupItemsSourceChanged)); var templateMember = AttachedBindingMember.CreateAutoProperty(AttachedMembers.PreferenceGroup.ItemTemplateSelector); MemberProvider.Register(templateMember); MemberProvider.Register(AttachedMemberConstants.ItemTemplate, templateMember); }
private static void Register(IBindingMemberProvider memberProvider) { BindingBuilderExtensions.RegisterDefaultBindingMember <Entry>(() => t => t.Text); BindingBuilderExtensions.RegisterDefaultBindingMember <Label>(() => t => t.Text); BindingBuilderExtensions.RegisterDefaultBindingMember <Button>("Clicked"); BindingBuilderExtensions.RegisterDefaultBindingMember <ToolbarItem>("Clicked"); BindingBuilderExtensions.RegisterDefaultBindingMember <ListView>(() => c => c.ItemsSource); BindingBuilderExtensions.RegisterDefaultBindingMember <ProgressBar>(() => c => c.Progress); //Element memberProvider.Register(AttachedBindingMember .CreateMember <Element, object>(AttachedMemberConstants.Parent, GetParentValue, SetParentValue, ObserveParentMember)); memberProvider.Register(typeof(Element), "BindingContext", BindingMemberProvider.BindingContextMember, true); //VisualElement var visibleMember = memberProvider.GetBindingMember(typeof(VisualElement), ToolkitExtensions.GetMemberName <VisualElement>(() => element => element.IsVisible), true, false); if (visibleMember != null) { memberProvider.Register(typeof(VisualElement), "Visible", visibleMember, true); memberProvider.Register(AttachedBindingMember.CreateMember <VisualElement, bool>("Hidden", (info, element) => !element.IsVisible, (info, element, arg3) => element.IsVisible = !arg3, (info, element, arg3) => visibleMember.TryObserve(element, arg3))); } memberProvider.Register(AttachedBindingMember .CreateMember <VisualElement, object>(AttachedMemberConstants.FindByNameMethod, FindByNameMemberImpl)); memberProvider.Register(AttachedBindingMember.CreateMember <VisualElement, bool>(AttachedMemberConstants.Focused, (info, element) => element.IsFocused, (info, element, arg3) => { if (arg3) { element.Focus(); } else { element.Unfocus(); } }, (info, element, arg3) => BindingServiceProvider.WeakEventManager.Subscribe(element, "IsFocused", arg3))); var enabledMember = memberProvider.GetBindingMember(typeof(VisualElement), ToolkitExtensions.GetMemberName <VisualElement>(() => element => element.IsEnabled), true, false); if (enabledMember != null) { memberProvider.Register(typeof(VisualElement), AttachedMemberConstants.Enabled, enabledMember, true); } //Toolbar item enabledMember = memberProvider.GetBindingMember(typeof(ToolbarItem), "IsEnabled", true, false); if (enabledMember != null) { memberProvider.Register(typeof(ToolbarItem), AttachedMemberConstants.Enabled, enabledMember, true); } }
private static void Register(IBindingMemberProvider memberProvider) { BindingBuilderExtensions.RegisterDefaultBindingMember <TextBlock>(nameof(TextBlock.Text)); BindingBuilderExtensions.RegisterDefaultBindingMember <TextBox>(nameof(TextBox.Text)); BindingBuilderExtensions.RegisterDefaultBindingMember <Button>(nameof(Button.Click)); BindingBuilderExtensions.RegisterDefaultBindingMember <ComboBox>(nameof(ComboBox.ItemsSource)); BindingBuilderExtensions.RegisterDefaultBindingMember <ListBox>(nameof(ListBox.ItemsSource)); BindingBuilderExtensions.RegisterDefaultBindingMember <ProgressBar>(nameof(ProgressBar.Value)); //UIElement memberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.UIElement.Visible, (info, view) => view.Visibility == Visibility.Visible, (info, view, value) => view.Visibility = value ? Visibility.Visible : Visibility.Collapsed, ObserveVisiblityMember)); memberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.UIElement.Hidden, (info, view) => view.Visibility != Visibility.Visible, (info, view, value) => view.Visibility = value ? Visibility.Collapsed : Visibility.Visible, ObserveVisiblityMember)); //FrameworkElement memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, object>(AttachedMemberConstants.Parent, GetParentValue, SetParentValue, ObserveParentMember)); memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, object>(AttachedMemberConstants.FindByNameMethod, FindByNameMemberImpl)); #if WINDOWS_UWP memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, bool>(AttachedMemberConstants.Focused, (info, control) => FocusManager.GetFocusedElement() == control, null, nameof(FrameworkElement.LostFocus))); memberProvider.Register(AttachedBindingMember .CreateMember <Control, bool>(AttachedMemberConstants.Enabled, (info, control) => control.IsEnabled, (info, control, value) => control.IsEnabled = value)); #else memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, bool>(AttachedMemberConstants.Focused, (info, control) => control.IsFocused, null, nameof(FrameworkElement.LostFocus))); memberProvider.Register(AttachedBindingMember .CreateMember <FrameworkElement, bool>(AttachedMemberConstants.Enabled, (info, control) => control.IsEnabled, (info, control, value) => control.IsEnabled = value, nameof(FrameworkElement.IsEnabledChanged))); #endif #if WINDOWS_UWP //TextBox memberProvider.Register(AttachedBindingMember.CreateMember <TextBox, string>(nameof(TextBox.Text), (info, box) => box.Text, (info, box, value) => box.Text = value ?? string.Empty, nameof(TextBox.TextChanged))); //TextBlock memberProvider.Register(AttachedBindingMember.CreateMember <TextBlock, string>(nameof(TextBlock.Text), (info, box) => box.Text, (info, box, value) => box.Text = value ?? string.Empty, ObserveTextTextBlock)); #else //WebBrowser memberProvider.Register(AttachedBindingMember.CreateMember <WebBrowser, Uri>(nameof(WebBrowser), (info, browser) => browser.Source, (info, browser, arg3) => browser.Source = arg3, nameof(WebBrowser.Navigated))); #endif }
public static void RegisterTextFieldMembers() { BindingServiceProvider.ResourceResolver.AddType(typeof(UITextFieldViewMode)); BindingBuilderExtensions.RegisterDefaultBindingMember <UITextField>(nameof(UITextField.Text)); _textObserver = NSNotificationCenter.DefaultCenter.AddObserver(UITextField.TextFieldTextDidChangeNotification, TextDidChangeNotification); var memberInfo = AttachedBindingMember.CreateEvent(AttachedMembers.UITextField.TextChangedEvent, SetTextFieldTextChanged); AttachedBindingMember.TrySetRaiseAction(memberInfo, RaiseTextChanged); MemberProvider.Register(memberInfo); }
public static void RegisterToolbarItemMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <ToolbarItem>(nameof(ToolbarItem.Clicked)); var enabledMember = MemberProvider.GetBindingMember(typeof(ToolbarItem), "IsEnabled", true, false); if (enabledMember != null) { MemberProvider.Register(typeof(ToolbarItem), AttachedMemberConstants.Enabled, enabledMember, true); } }
public static void RegisterSearchViewMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <SearchView>(nameof(SearchView.Query)); var queryMember = AttachedBindingMember.CreateMember <SearchView, string>(nameof(SearchView.Query), (info, searchView) => searchView.Query, (info, searchView, value) => searchView.SetQuery(value, false), nameof(SearchView.QueryTextChange)); MemberProvider.Register(queryMember); MemberProvider.Register(nameof(TextView.Text), queryMember); }
public static void RegisterToolStripItemMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <ToolStripButton>(nameof(ToolStripButton.Click)); BindingBuilderExtensions.RegisterDefaultBindingMember <ToolStripMenuItem>(nameof(ToolStripMenuItem.Click)); BindingBuilderExtensions.RegisterDefaultBindingMember <ToolStripItem>(nameof(ToolStripItem.Text)); MemberProvider.Register(AttachedBindingMember.CreateMember <ToolStripItem, object>(AttachedMemberConstants.ParentExplicit, GetParentToolStripItem, null, ObserveParentMemberToolStripItem)); MemberProvider.Register(AttachedBindingMember.CreateMember <ToolStripItem, object>(AttachedMemberConstants.FindByNameMethod, FindByNameMemberToolStripItem)); }
public static void RegisterLabelMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <UILabel>(nameof(UILabel.Text)); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.UILabel.TextSizeToFit, (info, label) => label.Text, (info, label, arg3) => { label.Text = arg3; label.SizeToFit(); })); }
public static void RegisterPickerViewMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.UIView.ItemsSource.Override <UIPickerView>()); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UIView.ItemsSource.Override <UIPickerView>(), PickerViewItemsSourceChanged)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UIPickerView.DisplayMemberPath, PickerViewDisplayMemberPathChangedChanged)); MemberProvider.Register(AttachedBindingMember.CreateMember(AttachedMembers.UIPickerView.SelectedItem, (info, view) => GetOrAddPickerViewModel(view).SelectedItem, (info, view, arg3) => GetOrAddPickerViewModel(view).SelectedItem = arg3, (info, view, arg3) => { var viewModel = GetOrAddPickerViewModel(view); return(BindingServiceProvider.WeakEventManager.TrySubscribe(viewModel, nameof(MvvmPickerViewModel.SelectedItemChanged), arg3)); })); }
private static void RegisterPreferenceMembers(IBindingMemberProvider memberProvider) { BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.Preference.Click); BindingBuilderExtensions.RegisterDefaultBindingMember <TwoStatePreference>(nameof(TwoStatePreference.Checked)); BindingBuilderExtensions.RegisterDefaultBindingMember <ListPreference>(nameof(ListPreference.Value)); BindingBuilderExtensions.RegisterDefaultBindingMember <MultiSelectListPreference>(nameof(MultiSelectListPreference.Values)); BindingBuilderExtensions.RegisterDefaultBindingMember <EditTextPreference>(nameof(EditTextPreference.Text)); BindingBuilderExtensions.RegisterDefaultBindingMember(AttachedMembers.PreferenceGroup.ItemsSource); var changeMember = AttachedBindingMember.CreateEvent(AttachedMembers.Preference.ValueChangedEvent); BindingServiceProvider.MemberProvider.Register(changeMember); BindingServiceProvider.MemberProvider.Register(typeof(TwoStatePreference), "CheckedChanged", changeMember, true); BindingServiceProvider.MemberProvider.Register(typeof(MultiSelectListPreference), "ValuesChanged", changeMember, true); BindingServiceProvider.MemberProvider.Register(typeof(ListPreference), "EntryChanged", changeMember, true); BindingServiceProvider.MemberProvider.Register(typeof(MultiSelectListPreference), "EntryChanged", changeMember, true); BindingServiceProvider.MemberProvider.Register(typeof(EditTextPreference), "TextChanged", changeMember, true); //ListPreference memberProvider.Register( AttachedBindingMember.CreateMember <ListPreference, IEnumerable <string> >("EntryValues", (info, preference) => preference.GetEntryValues(), (info, preference, arg3) => preference.SetEntryValues(arg3 == null ? Empty.Array <string>() : arg3.ToArray()))); memberProvider.Register( AttachedBindingMember.CreateMember <ListPreference, IEnumerable <string> >("Entries", (info, preference) => preference.GetEntries(), (info, preference, arg3) => preference.SetEntries(arg3 == null ? Empty.Array <string>() : arg3.ToArray()))); //MultiSelectListPreference memberProvider.Register( AttachedBindingMember.CreateMember <MultiSelectListPreference, IEnumerable <string> >("EntryValues", (info, preference) => preference.GetEntryValues(), (info, preference, arg3) => preference.SetEntryValues(arg3 == null ? Empty.Array <string>() : arg3.ToArray()))); memberProvider.Register( AttachedBindingMember.CreateMember <MultiSelectListPreference, IEnumerable <string> >("Entries", (info, preference) => preference.GetEntries(), (info, preference, arg3) => preference.SetEntries(arg3 == null ? Empty.Array <string>() : arg3.ToArray()))); //PreferenceGroup memberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.PreferenceGroup.ItemsSource, PreferenceGroupItemsSourceChanged)); var templateMember = AttachedBindingMember.CreateAutoProperty(AttachedMembers.PreferenceGroup.ItemTemplateSelector); memberProvider.Register(templateMember); memberProvider.Register(AttachedMemberConstants.ItemTemplate, templateMember); }
private static void RegisterDialogMembers(IBindingMemberProvider memberProvider) { BindingBuilderExtensions.RegisterDefaultBindingMember <Element>(nameof(Element.Caption)); memberProvider.Register(AttachedBindingMember.CreateMember <Element, string>(nameof(Element.Caption), (info, element) => element.Caption, (info, element, arg3) => { element.Caption = arg3; element.Reload(); })); memberProvider.Register(AttachedBindingMember.CreateMember <Element, object>(AttachedMemberConstants.ParentExplicit, (info, element) => element.Parent, null)); BindingBuilderExtensions.RegisterDefaultBindingMember <EntryElement>(nameof(EntryElement.Value)); IBindingMemberInfo member = memberProvider.GetBindingMember(typeof(EntryElement), nameof(EntryElement.Changed), true, false); if (member != null) { memberProvider.Register(AttachedBindingMember.CreateEvent <EntryElement>("ValueChanged", (info, element, arg3) => member.TryObserve(element, arg3))); } BindingBuilderExtensions.RegisterDefaultBindingMember <StringElement>(nameof(StringElement.Value)); memberProvider.Register(AttachedBindingMember.CreateMember <StringElement, string>(nameof(StringElement.Value), (info, element) => element.Value, (info, element, arg3) => { element.Value = arg3; element.Reload(); })); memberProvider.Register(AttachedBindingMember.CreateEvent(AttachedMembers.StringElement.TappedEvent, (info, element, arg3) => { var weakWrapper = arg3.ToWeakWrapper(); IDisposable unsubscriber = null; Action action = () => { if (!weakWrapper.EventListener.TryHandle(weakWrapper.EventListener, EventArgs.Empty)) { unsubscriber.Dispose(); } }; unsubscriber = WeakActionToken.Create(element, action, (stringElement, nsAction) => stringElement.Tapped -= nsAction); element.Tapped += action; return(unsubscriber); })); }
public static void RegisterListPreferenceMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <ListPreference>(nameof(ListPreference.Value)); if (_valueChangedEventMember != null) { BindingServiceProvider.MemberProvider.Register(typeof(ListPreference), "EntryChanged", _valueChangedEventMember, true); } MemberProvider.Register( AttachedBindingMember.CreateMember <ListPreference, IEnumerable <string> >("EntryValues", (info, preference) => preference.GetEntryValues(), (info, preference, arg3) => preference.SetEntryValues(arg3?.ToArray() ?? Empty.Array <string>()))); MemberProvider.Register( AttachedBindingMember.CreateMember <ListPreference, IEnumerable <string> >("Entries", (info, preference) => preference.GetEntries(), (info, preference, arg3) => preference.SetEntries(arg3?.ToArray() ?? Empty.Array <string>()))); }
public static void RegisterTableViewCellMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <UITableViewCell>(() => c => c.TextLabel.Text); BindingServiceProvider.ResourceResolver.AddType(typeof(UITableViewCellEditingStyle)); BindingServiceProvider.ResourceResolver.AddType(typeof(UITableViewCellAccessory)); BindingServiceProvider.ResourceResolver.AddType(typeof(UITableViewCellSelectionStyle)); BindingServiceProvider.ResourceResolver.AddType(typeof(UITableViewCellSeparatorStyle)); BindingServiceProvider.ResourceResolver.AddType(typeof(UITableViewCellStyle)); var member = AttachedBindingMember.CreateEvent(AttachedMembers.UITableViewCell.AccessoryButtonTappedEvent); MemberProvider.Register(member); MemberProvider.Register("Click", member); MemberProvider.Register(AttachedBindingMember.CreateEvent(AttachedMembers.UITableViewCell.DeleteClickEvent)); MemberProvider.Register(AttachedBindingMember.CreateEvent(AttachedMembers.UITableViewCell.InsertClickEvent)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableViewCell.TitleForDeleteConfirmation)); MemberProvider.Register(AttachedBindingMember.CreateAutoProperty(AttachedMembers.UITableViewCell.EditingStyle)); BindingServiceProvider.MemberProvider.Register(AttachedBindingMember.CreateMember <UITableViewCell, bool?>(nameof(UITableViewCell.Selected), (info, target) => TableViewSourceBase.CellMediator.GetMediator(target, true).SelectedBind, (info, cell, arg3) => TableViewSourceBase.CellMediator.GetMediator(cell, true).SelectedBind = arg3, (info, cell, arg3) => TableViewSourceBase.CellMediator.GetMediator(cell, true).AddWithUnsubscriber(arg3))); }
public static void RegisterDateTimePickerMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <DateTimePicker>(nameof(DateTimePicker.Value)); MemberProvider.Register(AttachedBindingMember.CreateMember <DateTimePicker, DateTime>(nameof(DateTimePicker.Value), (info, picker) => picker.Value, (info, picker, value) => { if (value < picker.MinDate) { picker.Value = picker.MinDate; } else if (value > picker.MaxDate) { picker.Value = picker.MaxDate; } else { picker.Value = value; } }, nameof(DateTimePicker.ValueChanged))); }
public static void RegisterDialogElementMembers() { DefaultCollectionViewManager.InsertInternalHandler = (view, index, item) => { var section = view as Section; if (section != null) { section.Insert(index, (Element)item); ((Element)item).RaiseParentChanged(); return(true); } var rootElement = view as RootElement; if (rootElement != null) { rootElement.Insert(index, (Section)item); ((Section)item).RaiseParentChanged(); return(true); } return(false); }; DefaultCollectionViewManager.RemoveAtInternalHandler = (view, index) => { var section = view as Section; if (section != null) { var element = section[index]; section.Remove(index); element.ClearBindingsRecursively(true, true); element.DisposeEx(); return(true); } var rootElement = view as RootElement; if (rootElement != null) { var element = rootElement[index]; rootElement.RemoveAt(index); element.ClearBindingsRecursively(true, true); element.DisposeEx(); return(true); } return(false); }; DefaultCollectionViewManager.ClearInternalHandler = view => { var section = view as Section; if (section != null) { var elements = section.OfType <Element>().ToArray(); section.Clear(); foreach (var element in elements) { element.ClearBindingsRecursively(true, true); element.DisposeEx(); } return(true); } var rootElement = view as RootElement; if (rootElement != null) { var elements = rootElement.ToArray(); rootElement.Clear(); foreach (var element in elements) { element.ClearBindingsRecursively(true, true); element.DisposeEx(); } return(true); } return(false); }; BindingBuilderExtensions.RegisterDefaultBindingMember <Element>(nameof(Element.Caption)); MemberProvider.Register(AttachedBindingMember.CreateMember <Element, string>(nameof(Element.Caption), (info, element) => element.Caption, (info, element, arg3) => { element.Caption = arg3; element.Reload(); })); MemberProvider.Register(AttachedBindingMember.CreateMember <Element, object>(AttachedMemberConstants.ParentExplicit, (info, element) => element.Parent, null)); }
public static void RegisterProgressViewMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <UIProgressView>(nameof(UIProgressView.Progress)); }
public static void RegisterSliderMembers() { BindingBuilderExtensions.RegisterDefaultBindingMember <UISlider>(nameof(UISlider.Value)); }