예제 #1
0
        private static void RegisterTableViewMembers(IBindingMemberProvider memberProvider)
        {
            BindingServiceProvider.ResourceResolver.AddType("UITableViewRowAnimation", typeof(UITableViewRowAnimation));
            BindingServiceProvider.ResourceResolver.AddType("UITableViewScrollPosition", typeof(UITableViewScrollPosition));
            BindingServiceProvider.ResourceResolver.AddType("UITableViewCellEditingStyle", typeof(UITableViewCellEditingStyle));
            BindingServiceProvider.ResourceResolver.AddType("UITableViewCellAccessory", typeof(UITableViewCellAccessory));
            BindingServiceProvider.ResourceResolver.AddType("UITableViewCellSelectionStyle", typeof(UITableViewCellSelectionStyle));
            BindingServiceProvider.ResourceResolver.AddType("UITableViewCellSeparatorStyle", typeof(UITableViewCellSeparatorStyle));
            BindingServiceProvider.ResourceResolver.AddType("UITableViewCellStyle", typeof(UITableViewCellStyle));

            BindingServiceProvider.BindingMemberPriorities[TableViewUseAnimationsMember.Path]    = 1;
            BindingServiceProvider.BindingMemberPriorities[TableViewAddAnimationMember.Path]     = 1;
            BindingServiceProvider.BindingMemberPriorities[TableViewRemoveAnimationMember.Path]  = 1;
            BindingServiceProvider.BindingMemberPriorities[TableViewReplaceAnimationMember.Path] = 1;
            BindingServiceProvider.BindingMemberPriorities[TableViewScrollPositionMember.Path]   = 1;
            BindingServiceProvider.BindingMemberPriorities[TableViewCellBindMember.Path]         = 1;

            //UITableView
            memberProvider.Register(TableViewReadOnlyMember);
            memberProvider.Register(TableViewCellBindMember);
            memberProvider.Register(TableViewAddAnimationMember);
            memberProvider.Register(TableViewRemoveAnimationMember);
            memberProvider.Register(TableViewReplaceAnimationMember);
            memberProvider.Register(TableViewScrollPositionMember);
            memberProvider.Register(TableViewDefaultCellStyleMember);
            memberProvider.Register(TableViewSelectedItemChangedEvent);
            memberProvider.Register(AttachedBindingMember.CreateAutoProperty <UITableView, IEnumerable>(AttachedMemberConstants.ItemsSource, TableViewItemsSourceChanged));
            memberProvider.Register(AttachedBindingMember.CreateMember <UITableView, object>(AttachedMemberConstants.SelectedItem,
                                                                                             GetTableViewSelectedItem, SetTableViewSelectedItem, (info, view, arg3) => (IDisposable)TableViewSelectedItemChangedEvent.SetValue(view, arg3)));
            memberProvider.Register(AttachedBindingMember.CreateAutoProperty <UITableView, ITableCellTemplateSelector>(AttachedMemberConstants.ItemTemplate));

            //UITableViewCell
            memberProvider.Register(TableViewCellAccessoryButtonTappedEvent);
            memberProvider.Register("Click", TableViewCellAccessoryButtonTappedEvent);
            memberProvider.Register(TableViewCellDeleteClickEvent);
            memberProvider.Register(TableViewCellInsertClickEvent);
            memberProvider.Register(TableViewCellMoveableMember);
            memberProvider.Register(TitleForDeleteConfirmationMember);
            memberProvider.Register(TableViewCellEditingStyleMember);
            memberProvider.Register(TableViewCellSelectedMember);
            memberProvider.Register(TableViewCellHighlightedMember);
            memberProvider.Register(TableViewCellEditingMember);
            memberProvider.Register(TableViewCellShouldHighlightMember);
        }
        private static object SetParent(IBindingMemberInfo bindingMemberInfo, object o, object[] arg3)
        {
            var value = AttachedParentMember.GetValue(o, null);

            return(AttachedParentMember.SetValue(o, value.UpdateAttachedParent(o, arg3)));
        }
        private static void RegisterCollectionViewMembers(IBindingMemberProvider memberProvider)
        {
            BindingServiceProvider.ResourceResolver.AddType("UICollectionViewScrollPosition", typeof(UICollectionViewScrollPosition));
            BindingServiceProvider.ResourceResolver.AddType("UICollectionViewScrollDirection", typeof(UICollectionViewScrollDirection));

            BindingServiceProvider.BindingMemberPriorities[CollectionViewUseAnimationsMember.Path]  = 1;
            BindingServiceProvider.BindingMemberPriorities[CollectionViewScrollPositionMember.Path] = 1;

            //UICollectionView
            memberProvider.Register(CollectionViewUseAnimationsMember);
            memberProvider.Register(CollectionViewScrollPositionMember);
            memberProvider.Register(CollectionViewSelectedItemChangedEvent);
            memberProvider.Register(AttachedBindingMember.CreateAutoProperty <UICollectionView, IEnumerable>(AttachedMemberConstants.ItemsSource, CollectionViewItemsSourceChanged));
            memberProvider.Register(AttachedBindingMember.CreateMember <UICollectionView, object>(AttachedMemberConstants.SelectedItem,
                                                                                                  GetCollectionViewSelectedItem, SetCollectionViewSelectedItem, (info, view, arg3) => (IDisposable)CollectionViewSelectedItemChangedEvent.SetValue(view, arg3)));
            memberProvider.Register(AttachedBindingMember.CreateAutoProperty <UICollectionView, ICollectionCellTemplateSelector>(
                                        AttachedMemberConstants.ItemTemplate,
                                        (view, args) =>
            {
                if (args.NewValue != null)
                {
                    args.NewValue.Initialize(view);
                }
            }));

            //UICollectionViewCell
            memberProvider.Register(CollectionViewCellSelectedMember);
            memberProvider.Register(CollectionViewCellHighlightedMember);
            memberProvider.Register(CollectionViewCellShouldHighlightMember);
            memberProvider.Register(CollectionViewCellShouldDeselectMember);
            memberProvider.Register(CollectionViewCellShouldSelectMember);
        }