xaml - validate a cell based on another cell value in datagrid in silverlight -


pfb code datagrid in our silverlight app,i need validate column attributevalue in each row based on other column value datatypename, example datatypenamecolumn value particular row int attributevalue column in same row should allow user int ,if user enters other int cell should throw validation exception.please help

<sdk:datagrid margin="0,0,0,50" grid.row="1" grid.column="0" rowstyle="{staticresource datagridrowstyle1}"  style="{staticresource datagridstyle1}" isreadonly="true" foreground="{staticresource graybrush}" horizontalscrollbarvisibility="hidden" name="dgkpiattributes" minheight="5" verticalalignment="stretch" fontsize="13.333" fontfamily="segoe ui"  autogeneratecolumns="false" gridlinesvisibility="none" >                                                     <sdk:datagrid.columns>                                                         <sdk:datagridtemplatecolumn header=" " >                                                             <sdk:datagridtemplatecolumn.celltemplate>                                                                 <datatemplate>                                                                     <checkbox x:name="chkselect"                                        verticalalignment="center" ischecked="false"  horizontalalignment="center" horizontalcontentalignment="center"/>                                                                   </datatemplate>                                                             </sdk:datagridtemplatecolumn.celltemplate>                                                         </sdk:datagridtemplatecolumn>                                                         <sdk:datagridtemplatecolumn header="attributename" sortmemberpath="attributename" width="50*" >                                                             <sdk:datagridtemplatecolumn.celltemplate>                                                                 <datatemplate>                                                                     <stackpanel verticalalignment="center">                                                                         <textblock x:name="txtattributename" textwrapping="wrap" padding="4" text="{binding attributename}" horizontalalignment="center" verticalalignment="center" />                                                                     </stackpanel>                                                                 </datatemplate>                                                             </sdk:datagridtemplatecolumn.celltemplate>                                                         </sdk:datagridtemplatecolumn>                                                         <sdk:datagridtemplatecolumn header="attributevalue" sortmemberpath="attributevalue" width="80*" >                                                             <sdk:datagridtemplatecolumn.celltemplate>                                                                 <datatemplate>                                                                     <stackpanel verticalalignment="center">                                                                         <textbox x:name="attributevalue"  margin="0,0,10,0" horizontalalignment="stretch" text="{binding attributevalue}"  textwrapping="wrap" />                                                                     </stackpanel>                                                                 </datatemplate>                                                             </sdk:datagridtemplatecolumn.celltemplate>                                                         </sdk:datagridtemplatecolumn>                                                         <sdk:datagridtemplatecolumn header="datatype" sortmemberpath="datatypename" width="50*">                                                             <sdk:datagridtemplatecolumn.celltemplate>                                                                 <datatemplate>                                                                     <stackpanel verticalalignment="center">                                                                          <textbox x:name="datatypename"  horizontalalignment="stretch"  textwrapping="wrap" isenabled="false"  text="{binding datatypename}" />                                                                     </stackpanel>                                                                 </datatemplate>                                                             </sdk:datagridtemplatecolumn.celltemplate>                                                         </sdk:datagridtemplatecolumn>                                                     </sdk:datagrid.columns>                                                  </sdk:datagrid> 

well, code can see class (correct me if i'm mistaken):

class myclass {       public string attributename {get;set;}       public string attributevalue {get;set;}       public string datatypename {get;set;} } 

in silverligth, suppose there way check cells in same row in datagrid, since working bindings, not need that, can work directly in data object:

class myclass {       public string attributename {get;set;}        public string datatypename {get;set;}        private string _attributevalue;       public string attributevalue {              get{                   return _attributevalue;                }              set{                   if (validate(datatypename,value)){                     //do if validation success                       _attributevalue = value;                   }                   else{                      //do if validation fails                   }               }           }        bool validate(string typename,string value){         //do validation, return true or false         return true       }   } 

this way not need concern traversing ui, data.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -