xaml - How to set AppBar DataContext -


as far can tell it's if nothing hooked up. text boxes not grab value or set value in vm , button command not hit upon click.

<page.topappbar>     <appbar>         <appbar.datacontext>             <binding path="appbar" source="{staticresource locator}"/>         </appbar.datacontext>         <grid>             <grid.columndefinitions>                 <columndefinition width="auto"></columndefinition>                 <columndefinition width="auto"></columndefinition>                 <columndefinition width="auto"></columndefinition>             </grid.columndefinitions>             <textbox margin="0,0,20,0" textalignment="center" height="25" grid.column="0" text="{binding ipaddress}"></textbox>             <textbox margin="0,0,20,0" textalignment="center" height="25" grid.column="1" text="{binding port}"></textbox>             <button grid.column="2" command="{binding savecommand}">save</button>         </grid>     </appbar> </page.topappbar> <page.datacontext>     <binding path="main" source="{staticresource locator}"/>         </page.datacontext> 

have tried debugging eventhandler appbar.datacontextchanged? app bar's datacontext set correct value, goes bad moment later when data context changed executed again new datacontext null. suggest adding switch revert datacontext if null value shows up.

xaml

<appbar datacontextchanged="appbar_datacontextchanged" ... /> 

c#

    private object _datacontext;     private void appbar_datacontextchanged(frameworkelement sender, datacontextchangedeventargs args)     {         if (args.newvalue != null)         {             if (_datacontext == null)             {                 _datacontext = args.newvalue;             }         }         else         {             if (_datacontext != null)             {                 sender.datacontext = _datacontext;             }         }     } 

if want textbox update viewmodel, binding mode must twoway.

<textbox margin="0,0,20,0" textalignment="center" height="25" grid.column="0" text="{binding ipaddress, mode=twoway}"></textbox> <textbox margin="0,0,20,0" textalignment="center" height="25" grid.column="1" text="{binding port, mode=twoway}"></textbox> 

Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -

django - CSRF verification failed. Request aborted. CSRF cookie not set -