c# - DataContext in Style is not available on the DataTrigger -


i have userdefined control call segmentview (derived contentcontrol). additionally have segmentmodel implements inotifypropertychanged. segmentmodel has property called statuscontroller , there statuscontrollerviewmodel.

for of views create view models automatically in xaml , attach models. viewmodel automatically set datacontext of view.

it works well, except following. modeltoviewmodelconverter creates viewmodel, attaches model , sets viewmodel datacontext of control. how works several other things. additionally in style, have datatrigger changes opacity of dockpanel. datacontext of dockpanel indeed set instance of statuscontrollerviewmodel, but, binding in datatrigger not found.

btw: statuscontroller property of larger model, not shown here brevity. should correct shown datacontext set correctly, statuscontrollerviewmodel. binding tells different story. seems doesn't "see" datacontext of dockpanel, sees datacontext of levels above.

the model property of statuscontrollerviewmodel, access directly model.

any thoughts on this?

<style>     <style.resources >     <converters:modeltoviewmodelconverter x:key="m2vm"/>     </style.resources>     <setter property = "template" >         <setter.value >             <controltemplate targettype="{x:type views:segmentview}">                  <dockpanel x:name= "docker"  datacontext= "{binding statuscontroller, converter={staticresource m2vm}, converterparameter={x:type csharp:statuscontrollerviewmodel}}" >                      <dockpanel.style >                         <style targettype= "{x:type dockpanel}" >                             <setter property= "background" value= "{x:null}" />                             <setter property= "opacity" value= "1" />                                <style.triggers >                                 <datatrigger  binding= "{binding path=model.isprogressrunning, isasync=true, mode=oneway}" value= "true" >                                     <setter property= "opacity" value= "0.1" />                                     <setter property= "background" value= "black">                                 </ datatrigger >                             </ style.triggers >                         </ style >                     </ dockpanel.style >                 </dockpanel>             </controltemplate>         </setter.value>     </setter> </style> 


Comments

Popular posts from this blog

javascript - Slick Slider width recalculation -

jsf - PrimeFaces Datatable - What is f:facet actually doing? -

angular2 services - Angular 2 RC 4 Http post not firing -