c# - WPF Data Binding Architecture Question -


i'm trying learn how use wpf binding , mvvm architecture. i'm running trouble dependency properties. i've tried control visibility of item on view binding dependencyproperty in datacontext, doesn't work. no matter set gridvisible value in constructor of view model below, displayed visible when run code.

can see i'm going wrong?

c# code (viewmodel):

public class myviewmodel : dependencyobject {     public myviewmodel ()     {         gridvisible = false;     }      public static readonly dependencyproperty gridvisibleproperty =     dependencyproperty.register(         "gridvisible",         typeof(bool),         typeof(myviewmodel),         new propertymetadata(false,                 new propertychangedcallback(gridvisiblechangedcallback)));      public bool gridvisible     {         { return (bool)getvalue(gridvisibleproperty); }         set { setvalue(gridvisibleproperty, value); }     }      protected static void gridvisiblechangedcallback(         dependencyobject source,         dependencypropertychangedeventargs e)     {         // other stuff in response data change.     } } 

xaml code (view):

<usercontrol ... >      <usercontrol.resources>         <booleantovisibilityconverter x:key="booltovisconverter" />     </usercontrol.resources>      <usercontrol.datacontext>         <local:myviewmodel x:name="myviewmodel" />     </usercontrol.datacontext>      <grid x:name="_mygrid"         visibility="{binding path=gridvisible,             elementname=myviewmodel,             converter={staticresource booltovisconverter}}">          <!-- other elements in here -->      </grid>  </usercontrol> 

i've looked @ several tutorials online, , seems i'm correctly following i've found there. ideas? thanks!

take elementname off binding, doesn't seem correct. change to:

<grid x:name="_mygrid"         visibility="{binding path=gridvisible,             converter={staticresource booltovisconverter}}"> 

Comments