async Task init()
        {
            booksource = new BookDataSource();
            lo_list    = new IGroupList();

            lo_list.StackListScrollCompleted         += lo_list_StackListScrollCompleted;
            lo_list.StackItemFullAnimationCompleted  += lo_list_StackItemFullAnimationCompleted;
            lo_list.StackItemFullAnimationStarted    += lo_list_StackItemFullAnimationStarted;
            lo_list.StackItemThumbAnimationStarted   += lo_list_StackItemThumbAnimationStarted;
            lo_list.StackItemThumbAnimationCompleted += lo_list_StackItemThumbAnimationCompleted;
            MainGrid.Children.Add(lo_list);

            down_menu = new ControlDownMenu();
            MainGrid.Children.Add(down_menu);
            down_menu.ControlDownElementSelected += menu_ControlDownElementSelected;


            //init data
            var vm = ViewModel as LOViewModel;
            await vm.InitLoad();


            loadLOsInCircle(0);
            lo_list.Source   = booksource;
            down_menu.Source = booksource;
            //vm = this.ViewModel as LOViewModel;
            vm.PropertyChanged += vm_PropertyChanged;
        }