﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » Business Objects and Data Access (How do I?)  » BBS ... DevExpress and Custom Fields</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Fri, 08 May 2026 20:21:09 GMT</lastBuildDate><ttl>20</ttl><item><title>BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32208.aspx</link><description>&lt;font face="Arial"&gt;Currently I'm using a DevExpress grid with the Business Binding Source and it is working swimmingly ... except for one thing.&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;font face="Arial"&gt;I can only use the actual fields defined in the table to bind to the grid.&amp;nbsp; I was hoping to be able to create a custom property and select that as the binding field for the column in the grid but that doesn't work.&amp;nbsp; Here is an illustration:&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;font face="Arial"&gt;I have a table named Lead and that table is loosely associated with another table named DialRecalls.&amp;nbsp; I then created a stored procedure and linked these two tables together like so:&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;nbsp;SELECT lea_id,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_FirstName,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_LastName,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_SortName,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_Address,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_City,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_ST,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_ZipCode,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_Phone,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_Phone2,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_SourceID,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPACE(50)&amp;nbsp;&amp;nbsp;&amp;nbsp; AS lea_Source,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_RegionID,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPACE(10)&amp;nbsp;&amp;nbsp;&amp;nbsp; AS lea_Region,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_TelemarketerID,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPACE(3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AS lea_TelemarketerName,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dir_UserID&amp;nbsp;&amp;nbsp; AS lea_RecallUserID,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPACE(3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AS lea_RecallUserName,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dir_RecallOn AS lea_RecallOn&lt;br/&gt;&amp;nbsp;&amp;nbsp; FROM Lead INNER JOIN DialRecalls ON lea_id = dir_lea_id &lt;br/&gt;&amp;nbsp; WHERE lea_Status = 'L' AND &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dir_Active = 1&amp;nbsp;&amp;nbsp; AND &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (dir_RecallOn &amp;gt;= @DateFrom AND dir_RecallOn &amp;lt;= @DateTo)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dir_UserID =&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COALESCE(@dir_UserID, dir_UserID)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_ST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LIKE COALESCE(@lea_ST, lea_ST)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + '%' AND&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_City&amp;nbsp;&amp;nbsp;&amp;nbsp; LIKE COALESCE(@lea_City, lea_City)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + '%' AND &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_ZipCode LIKE COALESCE(@lea_ZipCode, lea_ZipCode) + '%' AND&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_Phone&amp;nbsp;&amp;nbsp; LIKE COALESCE(@lea_Phone, lea_Phone)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + '%' AND&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_SourceID IN (SELECT cos_ID FROM @SourceIDs) AND &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lea_RegionID IN (SELECT cor_ID &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Contact_Regions &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE cor_Region IN (SELECT cor_Region &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM @Regions))&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORDER BY dir_RecallOn&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#008080" face="Arial" size="2"&gt;&lt;font color="#000000"&gt;I then used that stored procedure in the FillByStoredProcedure method and populated the business object with the addition fields that I needed to display (performed using the AS function in SQL) ... as you can see one of those fields is lea_RecallOn which actually came from the DialRecall.dir_RecallOn field.&lt;/font&gt;&amp;nbsp; &lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#008080" face="Arial" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" face="Arial" size="2"&gt;Next, I created a custom property on the business object like so&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Browsable(false),&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BusinessFieldDisplayInEditor(),&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description("DialRecalls.dir_RecallOn"),&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public DateTime lea_RecallOn&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (DateTime)this.CurrentRow["lea_RecallOn"];&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.CurrentRow["lea_RecallOn"] = value;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#008080" face="Courier New" size="2"&gt;&lt;font color="#000000" face="Arial"&gt;And finally, I went into the grid designer, created a new column, and bound it to the "lea_RecallOn" field.&amp;nbsp; The problem is that the grid does not recognize any field that is not part of the strong typed data table created with the BO Mapper.&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#008080" face="Courier New" size="2"&gt;&lt;font color="#000000" face="Arial"&gt;So, is there anyway to create a property that the grid can see without created a fake property in the DDT and building with the BO Mapper?&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" face="Arial" size="2"&gt;I did get around this by creating a lea_RecallOn column in the datatable and running the above stored procedure ... the grid then picked up the date which originated in the DialRecall table.&amp;nbsp; I then excluded the field from the Insert and Update operations using the business object properties.&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000"&gt;Any recommendations?&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000"&gt;C. T.&lt;/font&gt;&amp;nbsp;</description><pubDate>Tue, 24 Sep 2013 19:08:35 GMT</pubDate><dc:creator>Charles Thomas Blankenship</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32219.aspx</link><description>Hey ... who told you and didn't tell me ...&amp;nbsp;once again I worship at the alter of the StrataFrame Gods.&lt;br/&gt;&lt;br/&gt;You know what pisses me off ... I mean really pisses me off ... why does a sh*t product like DNN eclipse our user base in terms of seats ... I just don't freakin' get it.</description><pubDate>Tue, 24 Sep 2013 19:08:35 GMT</pubDate><dc:creator>Charles Thomas Blankenship</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32218.aspx</link><description>Yep, Ivan nailed it. &amp;nbsp;There's&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;bo.CurrentDataTable.AcceptChanges();&lt;br/&gt;&lt;br/&gt;&lt;div&gt;and&lt;br/&gt;&lt;br/&gt;&lt;div&gt;bo.CurrentRow.AcceptChanges();&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Whichever one you need. &amp;nbsp;They both accept the edited values of the ADO.NET object as original values.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;FYI, this is the same thing we call on each row after it gets updated back to the database.</description><pubDate>Mon, 23 Sep 2013 10:57:33 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32217.aspx</link><description>YourBO.CurrentDatatable.AcceptChanges()</description><pubDate>Mon, 23 Sep 2013 07:34:09 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32216.aspx</link><description>Well, I knock down on weed and another one grows in its place ... the reason I wanted to perform an ID lookup after the initial join was to prevent the slowdown of the query just for looking up the name of the Telemarketer.&amp;nbsp; So, I created a custom property, gave it a descriptor and bound that column to the XtraGrid.&amp;nbsp; The data shows up without incident.&lt;br/&gt;&lt;br/&gt;However ...&lt;br/&gt;&lt;br/&gt;since I'm placing a value into one of the fields of the business object the business object is now "dirty" and it screws up the maintenance form toolbar button states.&amp;nbsp; &lt;br/&gt;&lt;br/&gt;Furthermore, each time the Undo button is pressed all of the Telemarketer names are erased from the column as they are in effect, changes to be rejected from the table.&lt;br/&gt;&lt;br/&gt;How does one go about resetting the editing status of that particular field ... or ... keep it from registering a dirty business object altogether.&lt;br/&gt;&lt;br/&gt;Thanks,</description><pubDate>Mon, 23 Sep 2013 03:52:58 GMT</pubDate><dc:creator>Charles Thomas Blankenship</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32215.aspx</link><description>Yep ... that worked ... it is a good thing this is not 1692 in Winston, Salem ... if it were I'd have all of you burned as witches ... as this worked like magic.</description><pubDate>Sat, 21 Sep 2013 21:24:45 GMT</pubDate><dc:creator>Charles Thomas Blankenship</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32214.aspx</link><description>This mebbe?&lt;br/&gt;&lt;br/&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;protected override FieldPropertyDescriptor[] GetCustomBindablePropertyDescriptors()&lt;br/&gt;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FieldPropertyDescriptor[] fpd = {new ReflectionPropertyDescriptor("lea_RecallOn", typeof(Lead))};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return fpd;&lt;br/&gt;}&lt;/strong&gt;&lt;/font&gt;</description><pubDate>Sat, 21 Sep 2013 21:08:03 GMT</pubDate><dc:creator>Charles Thomas Blankenship</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32213.aspx</link><description>Well ... I hate to be dense in public but would one of you please speak C#?&amp;nbsp; Here is my custom property ...&lt;br/&gt;&lt;br/&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Browsable(false),&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BusinessFieldDisplayInEditor(),&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description("DialRecalls.dir_RecallOn"),&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public DateTime lea_RecallOn&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (DateTime)this.CurrentRow["lea_RecallOn"];&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.CurrentRow["lea_RecallOn"] = value;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;</description><pubDate>Sat, 21 Sep 2013 20:56:35 GMT</pubDate><dc:creator>Charles Thomas Blankenship</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32212.aspx</link><description>Hi Charles,&lt;br/&gt;&lt;br/&gt;I was working outside yesterday and did not see your post until now.&amp;nbsp; I also use DevExpress grids a lot and with several Custom Field Properties (which is one of the most useful features of the SF BO).&lt;br/&gt;&lt;br/&gt;Follow Ben's recommendation &lt;span id="ctl00_ctlContentPlaceHolder_ctl00_ctlTopic_ctlPanelBar_ctlTopicsRepeater_ctl01_lblFullMessage"&gt;overriding the GetCustomBindablePropertyDescriptors() and you should be good to go.&lt;br/&gt;&lt;/span&gt;</description><pubDate>Fri, 20 Sep 2013 09:09:06 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32211.aspx</link><description>Howdy CT,&lt;br/&gt;&lt;br/&gt;&lt;div&gt;The post that Ivan gave is the way it's designed to work. &amp;nbsp;We implement the ICustomTypeDescriptor interface on BusinessLayer in order to filter out the properties that most people don't need to look at on the business object. &amp;nbsp;Properties like CurrentRow, CurrentDataTable, IsDirty, Count, etc. would show up in the grid if we didn't filter down to only the properties that are mapped. &amp;nbsp;If you add a custom property to your business object, you need to add your property to the list of properties that are exposed for binding, otherwise, it gets filtered out with all of the other properties that are not "mapped" properties.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;The way to do this is to override the GetCustomBindablePropertyDescriptors and return a property descriptor for your custom property. &amp;nbsp;The ReflectionPropertyDescriptor was created to be the easiest way to do it. &amp;nbsp;Like this:&lt;br/&gt;&lt;br/&gt;&lt;div&gt;&lt;span style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp; &amp;nbsp; Protected Overrides Function GetCustomBindablePropertyDescriptors() As MicroFour.StrataFrame.Business.FieldPropertyDescriptor()&lt;/span&gt;&lt;br style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Create and return a new array of FieldPropertyDescriptor&lt;/span&gt;&lt;br style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' objects that contains the ReflectionPropertyDescriptor&lt;/span&gt;&lt;br style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' for the custom field.&lt;/span&gt;&lt;br style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return New MicroFour.StrataFrame.Business.FieldPropertyDescriptor() { _&lt;/span&gt;&lt;br style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor("myFieldProperty", GetType(MyBO))}&lt;/span&gt;&lt;br style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(0, 0, 128); font-family: 'Courier New', Verdana; font-size: 11px; line-height: 21.328125px; background-color: rgb(255, 255, 255);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;I hope this helps the next time you need to bind a custom property to a grid (or TextBox or anything else).</description><pubDate>Fri, 20 Sep 2013 07:53:00 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32210.aspx</link><description>After pounding my head on the desk for a while ... I went down and watched Hardball with Chris Matthews ... and came up with this.&lt;br/&gt;&lt;br/&gt;There does not seem to be a performance hit with this solution and it does exactly what I want it to ... I just thought the BBS would be a bit more straight forward.&amp;nbsp; &lt;br/&gt;&lt;br/&gt;The problem it seems is that DevExpress XtraGrid does not care about custom properties ... they don't show up in the designer when populating the grid either ... which is a clue.&lt;br/&gt;&lt;br/&gt;This solution takes the lea_id out of the grid, which comes directly from the table and uses that to seek to the primary key of the business object and then pluck the value out of the custom property and push it into the unbound column.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void grvLeads_CustomColumnDisplayText(object sender,&amp;nbsp; DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ColumnView view = sender as ColumnView;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.Column.FieldName == "lea_Phone")&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string phone = (string)view.GetRowCellValue(e.RowHandle, view.Columns["lea_Phone"]);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.DisplayText = string.Format("{0:(###) ###-####}", Convert.ToDouble(phone));&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.Column.FieldName == "lea_RecallOn")&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int leadID = (int)view.GetRowCellValue(e.RowHandle, view.Columns["lea_id"]);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLead.SeekToPrimaryKey(leadID);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.DisplayText = string.Format("{0:d}",oLead.lea_RecallOn);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;</description><pubDate>Fri, 20 Sep 2013 00:03:36 GMT</pubDate><dc:creator>Charles Thomas Blankenship</dc:creator></item><item><title>RE: BBS ... DevExpress and Custom Fields</title><link>http://forum.strataframe.net/FindPost32209.aspx</link><description>Hi Charles.&lt;br/&gt;&lt;br/&gt;See if this one helps:&lt;br/&gt;&lt;br/&gt;&lt;a href="http://forum.strataframe.net/FindPost17401.aspx"&gt;http://forum.strataframe.net/FindPost17401.aspx&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Boa noite. &lt;span&gt;:)&lt;/span&gt;</description><pubDate>Thu, 19 Sep 2013 20:02:54 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item></channel></rss>