c# - Frame navigation issue while using Drawer Layout in windows phone 8.1 -


i developing windows phone app 8.1 using third party drawerlayout. problem when have design page using draweralayout. need pass same layout each other pages in application. when use bold frame.navigate(typeof(page1)); application crashed. unable debug problem. please help!!!

my xaml code is

<grid x:name="rootlayout">     <grid.rowdefinitions>         <rowdefinition height="auto"/>         <rowdefinition height="*"/>     </grid.rowdefinitions>     <grid.columndefinitions>         <columndefinition width="auto"/>         <columndefinition width="*"/>     </grid.columndefinitions>     <!-- title bar-->     <grid x:name="titlebar" height="50" grid.row="0" grid.column="0" grid.columnspan="2" background="skyblue">         <image  source="/assets/fs-logo.png" height="50" horizontalalignment="left" margin="10,0,0,0"/>     </grid>     <!--drawer layout-->     <drawer:drawerlayout x:name="drawerlayout" grid.row="1" grid.column="0" grid.columnspan="2">         <!--main layout-->         <grid x:name="mainlayout" background="white" >             <scrollviewer>                 <grid margin="5">                     <grid.rowdefinitions>                         <rowdefinition height="*"/>                         <rowdefinition height="*"/>                     </grid.rowdefinitions>                     <image x:name="mainimage" grid.row="0" source="{binding }"></image>                     <gridview x:name="grdview" grid.row="1" itemssource="{binding }" itemcontainerstyle="{staticresource gridviewitemcontainer}" tapped="grdview_tapped" >                         <gridview.itemtemplate>                             <datatemplate>                                 <border borderthickness="1" borderbrush="blue">                                 <grid height="{binding size}"                                       width="{binding size}">                                     <image height="120" width="150" source="{binding simageurl}" stretch="fill">                                      </image>                                     <textblock text="{binding name}" horizontalalignment="center" verticalalignment="bottom" foreground="black" fontsize="18"/>                                 </grid>                                 </border>                             </datatemplate>                         </gridview.itemtemplate>                         <gridview.itemspanel>                             <itemspaneltemplate>                                 <itemswrapgrid orientation="horizontal"></itemswrapgrid>                             </itemspaneltemplate>                         </gridview.itemspanel>                     </gridview>                 </grid>             </scrollviewer>         </grid>         <!--drawer layout-->         <grid x:name="listfragment" flowdirection="lefttoright" >             <listview x:name="listitem" selectionchanged="listitem_selectionchanged">                 <listview.itemtemplate>                     <datatemplate>                         <textblock text="{binding}" fontsize="20" foreground="black" margin="10" verticalalignment="center" horizontalalignment="left"/>                           </datatemplate>                 </listview.itemtemplate>             </listview>         </grid>     </drawer:drawerlayout>     <image grid.row="1" grid.column="0" height="50" width="50" source="/assets/appbar.right.png" tapped="chevlon_tapped">      </image> </grid> 

my mainpage.cs

 public sealed partial class mainpage : page {     private navigationhelper navigationhelper;     private observabledictionary defaultviewmodel = new observabledictionary();      list<services.company> companydata;     list<services.category> categorydata;      public mainpage()     {         this.initializecomponent();          loaded += mainpage_loaded;         this.navigationhelper = new navigationhelper(this);         this.navigationhelper.loadstate += this.navigationhelper_loadstate;         this.navigationhelper.savestate += this.navigationhelper_savestate;         this.navigationcachemode = navigationcachemode.required;     }     async void mainpage_loaded(object sender, routedeventargs e)     {        await  windows.ui.viewmanagement.statusbar.getforcurrentview().hideasync();         // setgridviewitemsize();                     //throw new notimplementedexception();     }    /// <summary>    /// gets <see cref="navigationhelper"/> associated <see cref="page"/>.    /// </summary>    public navigationhelper navigationhelper    {        { return this.navigationhelper; }    }     /// <summary>    /// gets view model <see cref="page"/>.    /// can changed typed view model.    /// </summary>    public observabledictionary defaultviewmodel    {        { return this.defaultviewmodel; }    }     private async void navigationhelper_loadstate(object sender, loadstateeventargs e)    {        if (e.pagestate != null)        {            // this.defaultviewmodel["mainpage"] = (mainpage)e.pagestate["mainpage"];            // restore scroll offset            var index = (int)e.pagestate["firstvisibleitemindex"];            var container = grdview.containerfromindex(index);            grdview.scrollintoview(container);           }        else        {            //load data first time             drawerlayout.initializedrawerlayout();            var company = await services.compcatinfo.getcompaniesasync(app.compid);            companydata = company.tolist();            if (companydata.count > 0)            {                mainimage.source = new bitmapimage(new uri(companydata.elementat(0).logoimgurl, urikind.absolute));            }            var category = await services.compcatinfo.getcategoriesasync(app.compid);            categorydata = category.tolist();             setgridviewitemsize();            if (categorydata.count > 0)            {                grdview.itemssource = categorydata;            }          }     }    private void navigationhelper_savestate(object sender, savestateeventargs e)    {        var isp = (itemswrapgrid)grdview.itemspanelroot;        int firstvisibleitem = isp.firstvisibleindex;        e.pagestate["firstvisibleitemindex"] = firstvisibleitem;       // e.pagestate["homepage"] = this.frame.currentsourcepagetype;        // must serializable according suspensionmanager        //e.pagestate["mainpage"] = this.defaultviewmodel["mainpage"];    }    private void setgridviewitemsize()    {        //var viewmodel = (datacontext viewmodel1);         var width = math.truncate((grdview.actualwidth - 10));        var height = math.truncate((grdview.actualheight - 10));         // total left + right margin each tile (itemcontainerstyle)        var margin = 10;        var twocolumngridportrait = (width / 2) - margin;      //  var threecolumngridportrait = (width / 3) - margin;        var twocolumngridlandscape = (height / 2) - margin;        var threecolumngridlandscape = (height / 3) - margin;        double portrait;        double landscape;        portrait = twocolumngridportrait;        landscape = threecolumngridlandscape;         application.current.resources["gridviewitemportrait"] = math.round(portrait, 2);        application.current.resources["gridviewitemlandscape"] = math.round(landscape, 2);         if (displayinformation.getforcurrentview().currentorientation == displayorientations.portrait)        {            measure((double)application.current.resources["gridviewitemportrait"]);        }        else        {            measure((double)application.current.resources["gridviewitemlandscape"]);        }       // throw new notimplementedexception();    }     private void measure(double size)    {        (int = 0; < categorydata.count; i++)        {            var item = categorydata[i];            item.size = size;        }        //throw new notimplementedexception();    }    #region navigationhelper registration    /// <summary>     /// invoked when page displayed in frame.     /// </summary>     /// <param name="e">event data describes how page reached.     /// parameter typically used configure page.</param>     protected override void onnavigatedto(navigationeventargs e)    {        this.navigationhelper.onnavigatedto(e);             //if (e.navigationmode == navigationmode.new)         //{         //    drawerlayout.initializedrawerlayout();         //    var company = await services.compcatinfo.getcompaniesasync(app.compid);         //    companydata = company.tolist();         //    if (companydata.count > 0)         //    {         //        mainimage.source = new bitmapimage(new uri(companydata.elementat(0).logoimgurl, urikind.absolute));         //    }         //    var category = await services.compcatinfo.getcategoriesasync(app.compid);         //    categorydata = category.tolist();         //    setgridviewitemsize();         //    grdview.itemssource = categorydata;         //}         //else          //{         //   // this.frame.content = e.content;          //}         // todo: prepare page display here.          // todo: if application contains multiple pages, ensure         // handling hardware button registering         // windows.phone.ui.input.hardwarebuttons.backpressed event.         // if using navigationhelper provided templates,         // event handled you.     }      protected override void onnavigatedfrom(navigationeventargs e)     {         this.navigationhelper.onnavigatedfrom(e);     }     #endregion      private void chevlon_tapped(object sender, tappedroutedeventargs e)     {         string[] list = new string[] { "services","solutions","technologies","about us"};         listitem.itemssource = list.tolist();         if(drawerlayout.isdraweropen)         {             drawerlayout.closedrawer();         }         else         {             drawerlayout.opendrawer();         }     }      private void listitem_selectionchanged(object sender, selectionchangedeventargs e)     {         if (listitem.selecteditem != null)         {             var selecteditem = listitem.selectedvalue string;            // detailstxtblck.text = "selecteditem is: " + selecteditem;             drawerlayout.closedrawer();             listitem.selecteditem = null;         }      }      private void grdview_tapped(object sender, tappedroutedeventargs e)     {         drawerlayout.closedrawer();         if(e.originalsource.gettype().tostring()=="windows.ui.xaml.controls.image"||e.originalsource.gettype().tostring()=="windows.ui.xaml.controls.textblock")         {             var catobj = (sender gridview).selecteditem services.category;             ////frame rootframe = window.current.content frame;             ////rootframe.navigate(typeof(page2),catobj);            frame.navigate(typeof(page2),catobj);          }      } } 


can navigate way

 coredispatcher dispatcher = corewindow.getforcurrentthread().dispatcher;                     await dispatcher.runasync(coredispatcherpriority.normal, () =>                     {                         (window.current.content frame).navigate(typeof(page name));                      }); 

Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -