c# - Bool to Visibility Converter in WPF -


i have 3 radio buttons , 3 group boxes , based on selection of radio button, group box should have been visible or collapsed, nothing seems work here. code constructor gets executed, still seems things overlapping each other.

<basecontrols:maintaintemplate style="{staticresource {x:type basecontrols:maintaintemplate}}" titletext="{binding titletext}">      <basecontrols:maintaintemplate.tabsection>         <grid>             <groupbox>                 <groupbox.header>                     <textblock text="case information" style="{staticresource textblockwhite}"/>                 </groupbox.header>                 <groupbox.content>                     <grid x:name="gridmain">                         <grid.rowdefinitions>                             <rowdefinition style="{staticresource autoheightrowdefinition}"/>                             <rowdefinition style="{staticresource minheightrowdefinition}"/>                             <rowdefinition style="{staticresource autoheightrowdefinition}"/>                             <rowdefinition style="{staticresource minheightrowdefinition}"/>                             <rowdefinition style="{staticresource autoheightrowdefinition}"/>                             <rowdefinition style="{staticresource minheightrowdefinition}"/>                             <rowdefinition style="{staticresource maxheightrowdefinition}"/>                             <rowdefinition style="{staticresource minheightrowdefinition}"/>                         </grid.rowdefinitions>                         <grid.columndefinitions>                             <columndefinition style="{staticresource minwidthcolumndefinition}"/>                             <columndefinition style="{staticresource maxwidthcolumndefinition}"/>                             <columndefinition style="{staticresource minwidthcolumndefinition}"/>                         </grid.columndefinitions>                         <grid grid.column="1" x:name="gridselectcustomer">                             <grid.rowdefinitions>                                 <rowdefinition style="{staticresource minheightrowdefinition}"/>                                 <rowdefinition style="{staticresource autoheightrowdefinition}"/>                                 <rowdefinition style="{staticresource minheightrowdefinition}"/>                                 <rowdefinition style="{staticresource autoheightrowdefinition}"/>                             </grid.rowdefinitions>                             <grid.columndefinitions>                                 <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                 <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                 <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                 <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                 <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                 <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                 <columndefinition style="{staticresource autowidthcolumndefinition}"/>                             </grid.columndefinitions>                             <textblock grid.row="1" text="select customer" style="{staticresource textblockwhite}"/>                             <combobox grid.row="1" grid.column="2" width="150"  itemssource="{binding customers}"                            displaymemberpath="firstname" selectedvalue="{binding selectedcustomer}"/>                             <button grid.row="1"  grid.column="4" content="quick search"/>                             <button grid.row="1" grid.column="6" content="add new customer"/>                              <textblock grid.row="3" text="reference no" style="{staticresource textblockwhite}"/>                             <textbox grid.row="3"  grid.column="2"/>                             <textblock grid.row="3"  text="case no" grid.column="4" style="{staticresource textblockwhite}"/>                             <textbox grid.row="3"  grid.column="6" style="{staticresource textboxreadonly}"/>                         </grid>                         <groupbox grid.row="2" grid.column="1" x:name="groupboxcustomerinfo">                             <groupbox.header>                                 <textblock text="customer details" style="{staticresource textblockwhite}"></textblock>                             </groupbox.header>                             <groupbox.content>                                 <grid>                                     <grid.columndefinitions>                                         <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                         <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                         <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                         <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                         <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                         <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                         <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                         <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                     </grid.columndefinitions>                                     <grid.rowdefinitions>                                         <rowdefinition style="{staticresource autoheightrowdefinition}"/>                                         <rowdefinition style="{staticresource minheightrowdefinition}"/>                                         <rowdefinition style="{staticresource autoheightrowdefinition}"/>                                         <rowdefinition style="{staticresource minheightrowdefinition}"/>                                         <rowdefinition style="{staticresource autoheightrowdefinition}"/>                                     </grid.rowdefinitions>                                     <textblock style="{staticresource textblockwhite}" grid.row="0" grid.column="1" text="name"/>                                     <textbox style="{staticresource textboxreadonly}" grid.column="3"></textbox>                                     <textblock style="{staticresource textblockwhite}" grid.row="0" grid.column="5" text="phone no"/>                                     <textbox style="{staticresource textboxreadonly}" grid.column="7"></textbox>                                     <textblock style="{staticresource textblockwhite}" grid.row="2" grid.column="1" text="father's name"/>                                     <textbox style="{staticresource textboxreadonly}"  grid.column="3" grid.row="2"></textbox>                                     <textblock style="{staticresource textblockwhite}" grid.row="4" grid.column="1"  text="address"/>                                     <textbox style="{staticresource textboxmultilinereadonly}" grid.row="4" grid.column="3"  ></textbox>                                     <textblock style="{staticresource textblockwhite}" grid.row="2" grid.column="5"  text="date of birth"/>                                     <textbox style="{staticresource textboxreadonly}" grid.column="7" grid.row="2"></textbox>                                  </grid>                             </groupbox.content>                         </groupbox>                         <groupbox grid.row="4" grid.column="1" x:name="groupboxcasetype">                             <groupbox.header>                                 <textblock text="case type" style="{staticresource textblockwhite}"/>                             </groupbox.header>                             <groupbox.content>                                 <grid>                                     <grid.columndefinitions>                                         <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                         <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                         <columndefinition style="{staticresource maxwidthcolumndefinition}"/>                                         <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                         <columndefinition style="{staticresource maxwidthcolumndefinition}"/>                                         <columndefinition style="{staticresource autowidthcolumndefinition}"/>                                         <columndefinition style="{staticresource minwidthcolumndefinition}"/>                                     </grid.columndefinitions>                                     <radiobutton grid.column="1" x:name="rdbmonthlyinterest"  content="monthly interest"                                       style="{staticresource radiobuttonwhite}" ischecked="{binding ismonthlyinterestchecked}"/>                                     <radiobutton grid.column="3" x:name="rdbdailyinstallment" content="daily installment"                                       style="{staticresource radiobuttonwhite}" ischecked="{binding isdailyinstallmentchecked}"/>                                     <radiobutton grid.column="5" x:name="rdbmonthlyinstallment" content="monthly installment"                                       style="{staticresource radiobuttonwhite}" ischecked="{binding ismonthlyinstallmentchecked}"/>                                 </grid>                             </groupbox.content>                         </groupbox>                         <groupbox grid.row="6" grid.column="1" visibility="{binding path=ismonthlyinterestchecked, updatesourcetrigger=propertychanged, converter={staticresource  visibilityconverter}}" >                             <groupbox.header>                                 <textblock style="{staticresource textblockwhite}">monthly interest</textblock>                             </groupbox.header>                         </groupbox>                         <groupbox grid.row="6" grid.column="1" visibility="{binding path=isdailyinstallmentchecked, updatesourcetrigger=propertychanged, converter={staticresource  visibilityconverter}}" >                             <groupbox.header>                                 <textblock style="{staticresource textblockwhite}">daily installment</textblock>                             </groupbox.header>                         </groupbox>                         <groupbox grid.row="6" grid.column="1" visibility="{binding  path=inmonthlyinstallmentchecked, updatesourcetrigger=propertychanged, converter={staticresource  visibilityconverter}}" >                             <groupbox.header>                                 <textblock style="{staticresource textblockwhite}">monthly installment</textblock>                             </groupbox.header>                         </groupbox>                     </grid>                 </groupbox.content>             </groupbox>         </grid>     </basecontrols:maintaintemplate.tabsection> </basecontrols:maintaintemplate> 

here code converter

    namespace finance.mainui.common.converters     {     public class booltovisibilityconverter : ivalueconverter     {         public object convert(object value, type targettype, object parameter, cultureinfo culture)         {             return (bool) value ? visibility.visible : visibility.collapsed;         }          public object convertback(object value, type targettype, object parameter,cultureinfo culture)         {             throw new notimplementedexception();         }     } } 

change visibility binding to:

<groupbox grid.row="7" grid.column="1"      visibility="{binding          relativesource={relativesource findancestor,              ancestortype={x:type usercontrol}}         path=datacontext.ismonthlyinterestchecked,          updatesourcetrigger=propertychanged,          converter={staticresource  visibilityconverter}}" > 

then add property ismonthlyinterestchecked viewmodel , bind radiobutton it:

<radiobutton grid.column="0" x:name="rdbmonthlyinterest"       content="monthly interest"      style="{staticresource radiobuttonwhite}"      ischecked="{binding ismonthlyinterestchecked}"/> 

Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -