<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>eXpandFrameWork Bloggers</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=47dc79775250f8179037026feab39e43</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=47dc79775250f8179037026feab39e43&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 23:31:04 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>BLOG by Dennis Garavsky: How to enable the Conditional Formatting feature of the WinForms GridControl in the XAF GridListEditor and preserve ListView formatting settings between runs?</title>
         <link>http://dennisgaravsky.blogspot.com/2015/09/how-to-enable-conditional-formatting.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18.2px;&quot;&gt;In short, this feature allows your end-user to sort or group the data inside the grid AND to visualize selected cells, rows with data bars, icons and predefined or custom appearance schemes.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#252525;&quot;&gt;Refer to the following XtraGrid documentation for more information on this feature:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/WindowsForms/CustomDocument7874.aspx&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;WinForms Controls&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/WindowsForms/CustomDocument7891.aspx&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;Controls and Libraries&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/WindowsForms/CustomDocument3455.aspx&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;Data Grid&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;&quot;&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/WindowsForms/CustomDocument17691.aspx&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;Conditional Formatting&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#WindowsForms/DevExpressXtraGridViewsGridGridOptionsMenu_ShowConditionalFormattingItemtopic&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;GridOptionsMenu.ShowConditionalFormattingItem Property&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-SlHhGMKxn1U/Vfr5G5YHf6I/AAAAAAAAAnY/9EIzzv8NGqc/s1600/screenshot.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;292&quot; src=&quot;http://4.bp.blogspot.com/-SlHhGMKxn1U/Vfr5G5YHf6I/AAAAAAAAAnY/9EIzzv8NGqc/s400/screenshot.png&quot; width=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;background-color:white;color:#252525;font-family:inherit;line-height:18px;&quot;&gt;In general, accomplishing this task in an XAF app consists of several independent parts:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;strong style=&quot;background:rgb(255, 255, 255);border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;1.&lt;/strong&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp;Enabling, saving and restoring&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraGridGridFormatRuletopic&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;GridFormatRule&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp;objects using the standard XtraGrid as per&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/p/T290396.aspx&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;What is the best way to save and restore information just about Conditional Formatting rules in GridControl without using the RestoreLayoutFromXXX and SaveLayoutToXXX methods?&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;strong style=&quot;background:rgb(255, 255, 255);border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;2.&lt;/strong&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp;Integrating this solution in the&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/clsDevExpressExpressAppWinEditorsGridListEditortopic&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;GridListEditor&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp;using a&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112621&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;ViewController&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp;&amp;nbsp;as described in the&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/eXpressAppFramework/CustomDocument113165.aspx&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;Access Grid Control Properties&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp; help topic.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;strong style=&quot;background:rgb(255, 255, 255);border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;3.&lt;/strong&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp;Serializing the grid's formatting rules information,&amp;nbsp;taking into account the fact that&amp;nbsp;it uses a different mechanism for storing settings, which is based on the&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112579&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;Application Model&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;. In XAF, it is best to extend the ListView node with a string property that will hold a serialization representation of formatting rules.&amp;nbsp;Refer to the&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112785.aspx&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:18px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;How to: Extend the Application Model&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;&amp;nbsp; article for more details.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; name='more'&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://gist.github.com/dennis-garavsky/b8fcae6aae6256e9b005&quot; style=&quot;background-color:yellow;color:#4d469c;line-height:20px;text-align:justify;text-decoration:none;&quot;&gt;This C# source file&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;text-align:justify;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;(include it&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;text-align:justify;&quot;&gt;into&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;background-color:white;color:#333333;line-height:20px;text-align:justify;&quot;&gt;YourSolutionName.Module&lt;/i&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;text-align:justify;&quot;&gt;&amp;nbsp;project)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#252525;line-height:18px;&quot;&gt;illustrates how these parts can be joined together in XAF &lt;b&gt;v15.1.6&lt;/b&gt; (vb&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;text-align:justify;&quot;&gt;.net guys can either use&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://stackoverflow.com/questions/862723/use-vb-net-and-c-sharp-in-the-same-application&quot; style=&quot;background-color:white;color:#4d469c;line-height:20px;text-align:justify;text-decoration:none;&quot;&gt;this approach&lt;/a&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;text-align:justify;&quot;&gt;&amp;nbsp;OR convert this code into their language using free tools). It is also possible that this code can be simplified in future versions. I will try to keep this Gist updated as well as &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Question/Details/T291012&quot;&gt;the corresponding Support Center thread&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;text-align:justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;background-color:white;color:#333333;font-family:inherit;line-height:20px;text-align:justify;&quot;&gt;As always, I am looking forward to hearing from you on whether you find this feature helpful for your apps.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color:white;color:#333333;font-family:inherit;line-height:20px;text-align:justify;&quot;&gt;Thanks!&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color:white;color:#333333;font-family:inherit;line-height:20px;text-align:justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#333333;font-family:inherit;line-height:20px;text-align:justify;&quot;&gt;&lt;b&gt;UPDATE&lt;/b&gt;:&lt;br /&gt;Starting with v15.1.7+, the source code will be 3 lines simpler;-) Refer to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Question/Details/T291023&quot;&gt;this Support Center thread&lt;/a&gt; for more details.&lt;/span&gt;&lt;/div&gt;</description>
         <author>Dennis Garavsky</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-1944926148473713281.post-6712423809126885029</guid>
         <pubDate>Thu, 17 Sep 2015 10:34:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-SlHhGMKxn1U/Vfr5G5YHf6I/AAAAAAAAAnY/9EIzzv8NGqc/s72-c/screenshot.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>BLOG by Dennis Garavsky: How to reset View customizations made by end-users (UPDATE)</title>
         <link>http://dennisgaravsky.blogspot.com/2015/09/how-to-reset-view-customizations-made.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;&quot;&gt;I&amp;nbsp;invite&amp;nbsp;you to test an updated version of the previous&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Example/Details/E1897&quot;&gt;E1897&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;solution (it is now marked as obsolete), which we are planning to include in &lt;/span&gt;&lt;b style=&quot;font-family:inherit;&quot;&gt;v15.2&lt;/b&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt; by default.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;The new solution supports both WinForms and ASP.NET apps and also works for both the root and nested Views (e.g., the ones embedded into ListPropertyEditor and DetailPropertyEditor):&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-oe5WBLjsidM/VfA-8PNx88I/AAAAAAAAAm4/k4bMZdyBsMU/s1600/screenshot.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;290&quot; src=&quot;http://3.bp.blogspot.com/-oe5WBLjsidM/VfA-8PNx88I/AAAAAAAAAm4/k4bMZdyBsMU/s400/screenshot.png&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a rel=&quot;nofollow&quot; name='more'&gt;&lt;/a&gt;&lt;h3&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;b&gt;Testing&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;To test this new solution in the current v15.1, include &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://gist.github.com/dennis-garavsky/fdf5b89af07cabc4b030&quot;&gt;this C# source file&lt;/a&gt; into &lt;i&gt;YourSolutionName.Module&lt;/i&gt; project (vb.net guys can either use&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://stackoverflow.com/questions/862723/use-vb-net-and-c-sharp-in-the-same-application&quot;&gt;this approach&lt;/a&gt;&amp;nbsp;OR convert this code into their language using free tools).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;color:#333333;line-height:20px;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Poll question&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;I also have a question to you: what is the best location for the Reset View Settings command?&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;1. In a separate Tools sub-menu (one per root form);&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;2. In the toolbar accompanying each View (may be too noisy);&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;3. Suggest other locations and demonstrate them with screenshots (e.g., context menu).&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;I am looking forward to hearing from you.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Dennis Garavsky</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-1944926148473713281.post-2902484873091530183</guid>
         <pubDate>Wed, 09 Sep 2015 07:38:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-oe5WBLjsidM/VfA-8PNx88I/AAAAAAAAAm4/k4bMZdyBsMU/s72-c/screenshot.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>BLOG by Dennis Garavsky: Getting ready the ConditionalAppearance module infrastructure for custom options of the extended AppearanceAttribute (e.g., tooltip)</title>
         <link>http://dennisgaravsky.blogspot.com/2015/08/getting-ready-conditionalappearance.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;line-height:107%;&quot;&gt;First of all, this piece of information is quite advanced, so be sure you are well-aware of the module's basic functions and main extensibility and customization points, at least through&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument113374&quot;&gt;AppearanceController&lt;/a&gt;&lt;span style=&quot;line-height:107%;&quot;&gt;. If not, check out the&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument113286&quot;&gt;related online documentation&lt;/a&gt;&lt;span style=&quot;line-height:107%;&quot;&gt;&amp;nbsp;before reading further.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h4 style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Customer scenario&lt;/span&gt;&lt;/h4&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;color:#252525;font-family:inherit;&quot;&gt;Would it be possible to add in the conditional appearance module the possibility to show a tooltip in the cell in listView when the&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;color:#252525;font-family:inherit;&quot;&gt;condition is satisfied? (you get different color based on criteria and when you move to the cell a tooltip is shown telling you why the color is different ),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#252525;font-family:inherit;&quot;&gt;example:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;color:#252525;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;text-align:left;&quot;&gt;&lt;b&gt;[C#]&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;code style=&quot;background:transparent;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;Appearance&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&quot;CategoryColoredInListView&quot;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;AppearanceItemType&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&quot;ViewItem&quot;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;,&lt;/span&gt; &lt;/code&gt;&lt;code style=&quot;background:transparent;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;TargetItems&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&quot;Category&quot;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;, &lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;Criteria&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&quot;Category = 'Seafood'&quot;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;Context&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&quot;ListView&quot;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;code style=&quot;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background-color:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;FontColor&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background-color:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background-color:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&quot;Blue&quot;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background-color:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background-color:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;Priority&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background-color:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; 1&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background-color:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;background-color:yellow;&quot;&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;ToolTip&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;cr-aspx-tag&quot; style=&quot;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&quot;the tooltiptext!!!!&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style=&quot;font-family:monospace;&quot;&gt;)]&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;code style=&quot;background:transparent;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; name='more'&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;code style=&quot;background:transparent;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span class=&quot;cr-aspx-tag&quot; style=&quot;background:transparent;border:0px;color:#a31515;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;h4 style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Alternative solution considerations&lt;/span&gt;&lt;/h4&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;font-weight:normal;line-height:107%;&quot;&gt;If there were no ready built-in module in XAF, you could solve this by using the pure means available for the underlying grid control for a target platform. For instance, in WinForms, you could employ the ToolTipController API, while for ASP.NET WebForms you could handle the ASPxGridView events to programmatically assign a tooltip text to required data cells. Apparently, making these custom-tailored control-based solutions universal would require effort without XAF, and XAF users could even see this work as a duplication of the perfect existent infrastructure ConditionalAppearance provides. So, let's describe how to do things the XAF way!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;font-weight:normal;line-height:107%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;h4 style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;XAF way&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Let me repost the answer my colleague provided &amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Question/Details/T248959&quot; style=&quot;font-family:inherit;&quot;&gt;in &amp;nbsp;the original SC ticket&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt; and then elaborate more on the technical aspects of this solution:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;post-surface&quot; style=&quot;background:rgb(255, 255, 255);border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px 0px 10px;outline:0px;overflow:hidden;padding:0px;vertical-align:baseline;&quot;&gt;&lt;div class=&quot;post-text&quot; style=&quot;background:transparent;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;word-wrap:break-word;&quot;&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:transparent;font-family:inherit;line-height:1.5;&quot;&gt;&lt;i&gt;We designed the Conditional Appearance module to control various properties of controls and&amp;nbsp;provided implementation&amp;nbsp;for the most useful properties of DevExpress ASP.NET and WinForms controls: Enabled, Visible, BackColor, FontColor and&amp;nbsp;FontStyle.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;i style=&quot;font-family:inherit;line-height:1.5;&quot;&gt;However, there are other controls and properties that can be managed using the Conditional Appearance module capabilities.&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;i style=&quot;font-family:inherit;line-height:1.5;&quot;&gt;We&amp;nbsp;reviewed our implementation and&amp;nbsp;made a few&amp;nbsp;changes in our code&amp;nbsp;to support&amp;nbsp;new properties,&amp;nbsp;so you can request a hotfix right now, and we will publish it for you. This change will be included into the next&amp;nbsp;public release/update for the 14.2 release.&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:transparent;font-family:inherit;line-height:1.5;&quot;&gt;&lt;i&gt;The attached project demonstrates how&amp;nbsp;to&amp;nbsp;introduce an additional&amp;nbsp;string value&amp;nbsp;to the 'AppearanceAttribute' class&amp;nbsp;and apply this string to the ASPxGridView cell as a tooltip in accordance with the Conditional Appearance rules. Note that other controls and properties may require other&amp;nbsp;code&amp;nbsp;to&amp;nbsp;show&amp;nbsp;a specified&amp;nbsp;string as a tooltip. Please review the corresponding documentation for a necessary control for more details on how to&amp;nbsp;implement this scenario.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;post-xtra&quot; style=&quot;background:url(https://www.devexpress.com/Support/Center/Content/imgs/xtra-background.png) rgb(255, 255, 255);border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:25px;margin:0px;min-height:30px;outline:0px;padding:6px;vertical-align:baseline;&quot;&gt;&lt;div class=&quot;attachment-list&quot; style=&quot;background:url(https://www.devexpress.com/Support/Center/Content/imgs/attach.png) 10px 5px no-repeat transparent;border:0px;margin:0px;outline:0px;padding:0px 5px 0px 30px;vertical-align:baseline;&quot;&gt;&lt;span style=&quot;background:16px 50% no-repeat transparent;border:0px;color:#3c3c3c;cursor:pointer;font-family:inherit;margin:0px;outline:0px;padding:5px 4px;vertical-align:baseline;white-space:nowrap;&quot;&gt;&lt;a rel=&quot;nofollow&quot; class=&quot;attachment&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/9356a356-0926-11e5-80bf-00155d62480c&quot; style=&quot;background:16px 50% no-repeat transparent;border:0px;color:#3c3c3c;cursor:pointer;margin:0px;outline:0px;padding:5px 4px;vertical-align:baseline;white-space:nowrap;&quot; title=&quot;69.2 Kb (70,878 bytes)&quot;&gt;T248959.ZIP&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/--nHs-RbLudw/VdyqcbSbWKI/AAAAAAAAAmg/5RhfXyJy1WM/s1600/ASPxGridView.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;105&quot; src=&quot;http://3.bp.blogspot.com/--nHs-RbLudw/VdyqcbSbWKI/AAAAAAAAAmg/5RhfXyJy1WM/s400/ASPxGridView.png&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h4 style=&quot;text-align:left;&quot;&gt;Technical details&lt;/h4&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;&lt;b style=&quot;font-family:inherit;&quot;&gt;Solution26.Module&lt;/b&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt; &lt;span style=&quot;line-height:107%;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;i&gt;AppearanceWithToolTipAttribute.cs&lt;/i&gt; - contains a definition of an &lt;i&gt;AppearanceAttribute &lt;/i&gt;descendant with a custom &lt;i&gt;ToolTip &lt;/i&gt;property (its sample use is shown in the Class1.cs file) as well as several required service classes to propagate this new option through the Application Model and the whole ConditionalAppearance module infrastructure. For instance, the&amp;nbsp;&lt;i&gt;AppearanceItemToolTip &lt;/i&gt;class is an &lt;i&gt;AppearanceItemBase &lt;/i&gt;descendant that serves the same role as AppearanceItemEnabled, AppearanceItemFontColor and other built-in implementations (here it solely holds a tooltip value).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;The &lt;i&gt;IModelAppearanceWithToolTipRule &lt;/i&gt;interface and its domain logic define a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/eXpressAppFramework/CustomDocument113169.aspx&quot;&gt;custom Application Model element&lt;/a&gt; that extends the built-in&amp;nbsp;&lt;i&gt;IModelAppearanceRule &lt;/i&gt;with the ToolTip property (see the Module.cs file for the registration code).&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Finally, the&amp;nbsp;&lt;i&gt;ToolTipAppearanceRule &lt;/i&gt;class is a descendant of the service &lt;i&gt;AppearanceRule &lt;/i&gt;class with a single overridden method that instantiates&amp;nbsp;&lt;i&gt;AppearanceItemToolTip &lt;/i&gt;objects for &lt;i&gt;IModelAppearanceWithToolTipRule &lt;/i&gt;nodes defined by a user in the Application Model.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align:justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;&lt;b&gt;Solution26.Module.Web&lt;/b&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;     &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;i&gt;AppearanceGridViewToolTipController.cs&lt;/i&gt; - contains a &lt;i&gt;ViewController &lt;/i&gt;that handles the&amp;nbsp;&lt;i&gt;CustomCreateAppearanceRule &lt;/i&gt;and &lt;i&gt;ApperanceApplied &lt;/i&gt;events of the built-in &lt;i&gt;AppearanceController &lt;/i&gt;for connecting rule metadata information with the underlying control customizations. In other words, the information from the &lt;i&gt;AppearanceItemToolTip &amp;nbsp;&lt;/i&gt;entity is propagated to the built-in &lt;i&gt;TableCellAppearanceAdapter &lt;/i&gt;object, which represents a precise implementation of the &lt;i&gt;IAppearanceFormat &lt;/i&gt;interface (there are various implementations for different UI entities in XAF). Or, simply, a link between the underlying UI control and its &lt;i&gt;TableCell &lt;/i&gt;object to which various appearance options (font, color, tooltip) can be applied.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Dennis Garavsky</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-1944926148473713281.post-7624484951937536566</guid>
         <pubDate>Tue, 25 Aug 2015 10:52:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/--nHs-RbLudw/VdyqcbSbWKI/AAAAAAAAAmg/5RhfXyJy1WM/s72-c/ASPxGridView.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>BLOG by Dennis Garavsky: A more straightforward and convenient way to query data using LINQ with ObjectSpace</title>
         <link>http://dennisgaravsky.blogspot.com/2015/08/a-more-straightforward-and-convenient.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;First of all, it is important to note that the capability to query data using LINQ has been available for a long time in the current version of XAF (or better said, in the underlying Entity Framework and XPO ORM libraries). So, this improvement in &lt;b&gt;v15.2&lt;/b&gt; is all about improving developer usability by exposing a helper method for the IObjectSpace interface representing&amp;nbsp;one of the main XAF entities (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument113707&quot;&gt;learn more...&lt;/a&gt;).&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;As noted in the corresponding&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Question/Details/Q483608&quot;&gt;SC ticket&lt;/a&gt;&amp;nbsp;(from here you can also &lt;b&gt;learn on the current solution&lt;/b&gt;):&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;background-color:white;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;&quot;&gt;The&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/clsDevExpressExpressAppIObjectSpacetopic&quot; style=&quot;border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;IObjectSpace&lt;/a&gt;&lt;span style=&quot;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;&quot;&gt;&amp;nbsp;interface now declares the following method:&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=&quot;color:#252525;font-family:'Courier New';font-size:12px;font-weight:bold;line-height:1.5;&quot;&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i style=&quot;font-family:'Courier New';font-size:12px;line-height:1.5;&quot;&gt;&lt;span style=&quot;color:#252525;&quot;&gt;&lt;b&gt;[C#]&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;i style=&quot;color:#252525;font-family:'Courier New';font-size:12px;line-height:1.5;&quot;&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;IQueryable&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;GetObjectsQuery&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;Boolean&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;inTransaction&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;cr-aspx-text&quot; style=&quot;border:0px;color:blue;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:1.5;margin-bottom:0.5em;margin-top:0.5em;min-height:10px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span style=&quot;background-color:white;&quot;&gt;&lt;i&gt;This method is implemented in&amp;nbsp;the&amp;nbsp;&lt;strong style=&quot;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;XPObjectSpace&lt;/strong&gt;,&amp;nbsp;&lt;strong style=&quot;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;EFObjectSpace&lt;/strong&gt;&amp;nbsp;and&amp;nbsp;&lt;strong style=&quot;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;NonPersistentObjectSpace&lt;/strong&gt;&amp;nbsp;classes.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:1.5;margin-bottom:0.5em;margin-top:0.5em;min-height:10px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span style=&quot;background-color:white;&quot;&gt;&lt;i&gt;The&amp;nbsp;&lt;span style=&quot;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;inTransaction&amp;nbsp;&lt;/span&gt;parameter has effect in XPO only and enables the mode in which querying a data store for objects includes all in-memory changes into query results.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;background-color:white;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;&quot;&gt;In the&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;NonPersistentObjectSpace&lt;/strong&gt;&lt;span style=&quot;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;&quot;&gt;, the&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;GetObjectsQuery&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;&quot;&gt;method casts the collection of objects created in the&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument114052&quot; style=&quot;border:0px;color:#043f97;cursor:pointer;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;ObjectsGetting&lt;/a&gt;&lt;span style=&quot;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;&quot;&gt;&amp;nbsp;event to IQueryable and returns the result.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;For XPObjectSpace, this method just returns a new&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#CoreLibraries/CustomDocument4060&quot;&gt;XPQuery&amp;lt;T&amp;gt;&lt;/a&gt;&amp;nbsp;from the underlying Session, while for the EFObjectSpace, the GetObjectsQuery method returns a new instance of&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://msdn.microsoft.com/library/Bb345303(v=VS.110).aspx&quot;&gt;ObjectQuery&amp;lt;T&amp;gt;&lt;/a&gt;&amp;nbsp;with the help of the associated DbContext.&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;br /&gt;Here are a few usage examples from our unit tests (using the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://msdn.microsoft.com/en-us/library/bb397947.aspx&quot;&gt;method-based query&lt;/a&gt; syntax):&lt;br /&gt;&lt;b&gt;EF&lt;/b&gt;:&lt;br /&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;i&gt;IQueryable&amp;lt;Product&amp;gt; objectsQuery =&amp;nbsp;objectSpaceB.GetObjectsQuery&amp;lt;Product&amp;gt;().Where(p =&amp;gt; (p.Supplier.ID == supplier_A.ID));&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;i&gt;Assert.AreEqual(5, objectsQuery.Count());&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;i&gt;Assert.AreEqual(3, objectsQuery.Where(p =&amp;gt; (p.Name == &quot;A&quot;)).Count());&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=&quot;color:blue;&quot;&gt;Assert.AreEqual(2, objectsQuery.Where(p =&amp;gt; (p.Name == &quot;B&quot;)).Count())&lt;/span&gt;;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XPO&lt;/b&gt;:&lt;br /&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;i&gt;IQueryable&amp;lt;TestObject&amp;gt; query = objectSpaceB.GetObjectsQuery&amp;lt;TestObject&amp;gt;();&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;i&gt;Assert.AreEqual(5, query.Count());&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;i&gt;Assert.AreEqual(3, query.Where(t =&amp;gt; t.StringProperty == &quot;A&quot;).Count());&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:blue;&quot;&gt;&lt;i&gt;Assert.AreEqual(2, query.Where(t =&amp;gt; t.StringProperty == &quot;B&quot;).Count());&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;I hope you will appreciate this minor improvement and it will save you from polluting your code by the casts to the XPObjectSpace/EFObjectSpace types to access the underlying ORM data context LINQ features.&lt;/div&gt;&lt;/div&gt;</description>
         <author>Dennis Garavsky</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-1944926148473713281.post-6748779653430438512</guid>
         <pubDate>Mon, 24 Aug 2015 15:10:00 +0000</pubDate>
      </item>
      <item>
         <title>BLOG by Dennis Garavsky: How to place an Action in a different location programmatically</title>
         <link>http://dennisgaravsky.blogspot.com/2015/08/how-to-place-action-in-different.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;I think that many people know that they can control this visually by drag&amp;amp;drop under the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112741&quot;&gt;ActionDesign | ActionToContainerMappin&lt;/a&gt;g node in the Model Editor, but just a few know of the best code solution. A good scenario when it is necessary to handle this requirement in code is described by our customer in&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Question/Details/T254827&quot;&gt;this Support Center ticket&lt;/a&gt;&amp;nbsp;(more real user scenarios can be found&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://search.devexpress.com/?q=xaf%20CustomizeContainerActions&amp;amp;m=SupportCenter&quot;&gt;here&lt;/a&gt;).&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;After receiving enough requests for this, we decided to put a full example solution in our docs. It is based on handling a single&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/DevExpressExpressAppSystemModuleActionControlsSiteController_CustomizeContainerActionstopic&quot;&gt;CustomizeContainerActions&lt;/a&gt;&amp;nbsp;event of the built-in&amp;nbsp;ActionControlsSiteController (or&amp;nbsp;FillActionContainersController class, if your form template does not support the&amp;nbsp;IActionControlsSite&amp;nbsp; interface).&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:justify;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-hsIyWHbnK44/VduOV5MB5MI/AAAAAAAAAmM/EmKCb2uEHR8/s1600/HelpResource.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;197&quot; src=&quot;http://3.bp.blogspot.com/-hsIyWHbnK44/VduOV5MB5MI/AAAAAAAAAmM/EmKCb2uEHR8/s400/HelpResource.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:justify;&quot;&gt;Do not miss this new online documentation and hopefully, it will help you spend less effort on accomplishing your advanced business requirements in our framework.&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Dennis Garavsky</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-1944926148473713281.post-7689156384468126115</guid>
         <pubDate>Mon, 24 Aug 2015 14:39:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-hsIyWHbnK44/VduOV5MB5MI/AAAAAAAAAmM/EmKCb2uEHR8/s72-c/HelpResource.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>BLOG by Dennis Garavsky: Refreshing UI according to the security permission changes done through the application or directly in the database</title>
         <link>http://dennisgaravsky.blogspot.com/2015/07/refreshing-ui-according-to-security.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;line-height:1.5;margin-bottom:0.5em;margin-top:0.5em;min-height:10px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span style=&quot;font-size:x-large;&quot;&gt;&lt;b&gt;UPDATE:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-size:x-large;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Starting with version&amp;nbsp;&lt;b&gt;15.1.6&lt;/b&gt;, the&amp;nbsp;&lt;em&gt;DevExpress.ExpressApp.Security.Adapters.IsGrantedAdapter&lt;/em&gt;&amp;nbsp;class and its static&amp;nbsp;Enable(ReloadPermissionStrategy reloadPermissionStrategy) method are used instead of the CanRefreshPermissions property, which became obsolete. The&amp;nbsp;ReloadPermissionStrategy enumeration has the following values:&lt;br /&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; OnEachTransaction&lt;/strong&gt;&amp;nbsp;- the latest security permissions are loaded from the database&amp;nbsp;for each new Session. Based on this info, permission request results are calculated and cached. Subsequent permission requests are evaluated using the cache if the Session object was not changed.&lt;br /&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; OnLogon&lt;/strong&gt;&amp;nbsp;- the latest security permissions are loaded from the database only once, on the logon, and are used until the log off or&amp;nbsp;next logon event. Permission request behavior is the same as in the previous mode. This helps avoid extra queries to the database while keeping the correct evaluation of object access permissions.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I want to repost my recent answer from &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Question/Details/T241873&quot;&gt;this Support Center&lt;/a&gt;&amp;nbsp;thread to collect more feedback from users:&lt;/div&gt;&lt;div style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:1.5;margin-bottom:0.5em;margin-top:0.5em;min-height:10px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span style=&quot;line-height:1.5;&quot;&gt;To ensure better performance, security permissions are cached on the first request by default, so that subsequent requests for object access rights are taken from the internal cache. We have received several customer requests to modify this behavior so that the most recent permission info was considered without the cache. In those scenarios, permission data was changed externally by an application administrator who wanted it to be applied immediately without forcing the user to restart his or her app.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;font-size:12px;line-height:1.5;margin-bottom:0.5em;margin-top:0.5em;min-height:10px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;br /&gt;To enable the new mode, set the static&amp;nbsp;&lt;strong style=&quot;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;SecuritySystem.CanRefreshPermissions&lt;/strong&gt;&amp;nbsp;property to True before a user is logged in, e.g. within the static constructor of your platform-agnostic module (YourSolutionName.Module) or within the Main function of the WinForms app or from the Application_Start method of your ASP.NET app respectively:&lt;/div&gt;&lt;br /&gt;&lt;pre class=&quot;cr-code&quot; style=&quot;background:rgb(238, 238, 238);border:0px;color:#252525;font-family:'Courier New';font-size:12px;line-height:1.5;margin-bottom:0.5em;margin-top:0.5em;max-height:800px;outline:0px;overflow:auto;padding:5px;vertical-align:baseline;word-wrap:normal;&quot;&gt;&lt;div class=&quot;cr-langtitle&quot; style=&quot;background:transparent;border:0px;font-weight:bold;margin:0px 0px 16px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;br /&gt;[C#]&lt;/div&gt;&lt;br /&gt;&lt;code style=&quot;background:transparent;border:0px;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;cr-aspx-text&quot; style=&quot;background:transparent;border:0px;color:blue;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;MainDemo&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;Module&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;cr-aspx-text&quot; style=&quot;background:transparent;border:0px;color:blue;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;cr-aspx-text&quot; style=&quot;background:transparent;border:0px;color:blue;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;sealed&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;partial&lt;/span&gt; &lt;span class=&quot;cr-aspx-text&quot; style=&quot;background:transparent;border:0px;color:blue;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;MainDemoModule&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;ModuleBase&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;cr-aspx-text&quot; style=&quot;background:transparent;border:0px;color:blue;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;MainDemoModule&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;SecuritySystem&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;CanRefreshPermissions&lt;/span&gt; &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;cr-aspx-text&quot; style=&quot;background:transparent;border:0px;color:blue;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;cr-aspx-string&quot; style=&quot;background:transparent;border:0px;color:black;margin:0px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style=&quot;border:0px;color:#252525;font-family:'Segoe UI', Helvetica, Verdana, sans-serif;line-height:1.5;margin-bottom:0.5em;margin-top:0.5em;min-height:10px;outline:0px;padding:0px;vertical-align:baseline;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Once you do this, security permission changes will be queried after the built-in Refresh Action is executed or when a new object DetailView is opened. This&amp;nbsp;guarantees that an end-user will see the application screens updated according to the most recent information. Additionally, the object access permissions by criteria will also be correctly re-evaluated according to the latest data changes. Consider the following scenario: there is a TestObject class with the Name and Description properties. Reading the Name property is always available, while the Description can be read only if Name equals &quot;1&quot;:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;border-color:initial;font-size:12px;outline-color:initial;&quot;&gt;&lt;img src=&quot;https://www.devexpress.com/Support/Center/Attachment/GetAttachmentFile/3dae66bb-36c3-11e5-80bf-00155d62480c&quot; style=&quot;border:0px;margin:0px;max-width:100%;outline:0px;padding:0px;vertical-align:baseline;&quot;/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Previously, to be able to see the effect of a permission after changing the Name property, you had to re-logon the current user as per&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/p/T269724.aspx&quot; style=&quot;border:0px;color:#043f97;cursor:pointer;font-size:12px;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;How do I reset the security permissions cache without logging in again after an administrator has changed user rights?&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Now, with the&amp;nbsp;SecuritySystem.CanRefreshPermissions option set to True, it is sufficient to press the Refresh button.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;We would greatly appreciate you downloading&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://downloads.devexpress.com/Share/XAF/DevExpressComponents-15.1.5.15211.exe&quot; style=&quot;background-color:yellow;border:0px;color:#043f97;cursor:pointer;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;the most recent 15.1.5+ hot-fix build&lt;/a&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&amp;nbsp;(or wait for the official v15.1.6) and testing this behavior in action with your project to see if it meets your needs.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;If this does not fully suit you, please describe the most important use-case scenarios and expected results that you wish to achieve with the security permission checking mechanism.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Dennis Garavsky</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-1944926148473713281.post-6297971090811890743</guid>
         <pubDate>Fri, 31 Jul 2015 02:24:00 +0000</pubDate>
      </item>
      <item>
         <title>BLOG by Dennis Garavsky: Making the AuditTrail functionality operate correctly with several XPObjectSpaceProviders when storing data in separate databases (15.1.6)</title>
         <link>http://dennisgaravsky.blogspot.com/2015/07/making-audittrail-functionality-operate.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;I wanted to inform the community of a solution we have just finished testing for the next XAF version&amp;nbsp;in response to the following customer's business scenario:&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;line-height:20px;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;background-color:white;line-height:20px;&quot;&gt;&quot;i followed this instruction to work with two databases in one application. so far so good.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;background-color:white;line-height:20px;&quot;&gt;i also managed to include the security module and get it working, but now i don't know how to use the &quot;audit trail&quot; module!&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color:white;line-height:20px;&quot;&gt;it doesn't seem to matter in which project i include it, but it will not save anything to the database.&quot;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;line-height:20px;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;background-color:white;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;line-height:18.2000007629395px;&quot;&gt;As you probably know, XAF supports connecting to several databases and even using both Entity Framework (EF) and eXpress Persistent Objects (XPO) at the same time (examples:&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#Xaf/CustomDocument3476&quot; style=&quot;line-height:18.2000007629395px;text-decoration:none;&quot;&gt;one&lt;/a&gt;&lt;span style=&quot;line-height:18.2000007629395px;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Example/Details/E4896&quot; style=&quot;line-height:18.2000007629395px;text-decoration:none;&quot;&gt;two&lt;/a&gt;&lt;span style=&quot;line-height:18.2000007629395px;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Example/Details/E1150&quot; style=&quot;line-height:18.2000007629395px;text-decoration:none;&quot;&gt;three&lt;/a&gt;&lt;span style=&quot;line-height:18.2000007629395px;&quot;&gt;), although it is not the primary scenario, to be honest.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;In short, if you were in need of such a configuration and wanted to have &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112782&quot;&gt;AuditTrail &lt;/a&gt;capabilities, it would &quot;just work&quot; starting with &lt;b&gt;v15.1.6&lt;/b&gt;. If you feel confident to check technical details on this, see my description in the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.devexpress.com/Support/Center/Question/Details/T263982&quot;&gt;T263982 - AuditTrail - Ensure support for scenarios with several XPObjectSpaceProviders&lt;/a&gt;&amp;nbsp;ticket.&lt;/div&gt;&lt;div style=&quot;text-align:justify;&quot;&gt;By providing support for this module, we continue working in the direction we took in the past, which I also discussed&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dennisgaravsky.blogspot.com/2015/02/storing-security-settings-users-roles.html&quot;&gt;in the past blog&lt;/a&gt;. As always, our team is looking forward to hearing your feedback in this regard.&lt;/div&gt;&lt;/div&gt;</description>
         <author>Dennis Garavsky</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-1944926148473713281.post-5271051656428074836</guid>
         <pubDate>Thu, 23 Jul 2015 04:48:00 +0000</pubDate>
      </item>
   </channel>
</rss>
<!-- fe8.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 23:31:03 UTC 2015 -->
