<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dapfor.Net Grid Blog &#187; .Net Grid features</title>
	<atom:link href="http://www.blog.dapfor.com/tag/net-grid-features/feed" rel="self" type="application/rss+xml" />
	<link>http://www.blog.dapfor.com</link>
	<description>.Net Grid and MFC Grid</description>
	<lastBuildDate>Fri, 09 Sep 2016 05:40:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>.NetGrid v2.9.2 has been released.</title>
		<link>http://www.blog.dapfor.com/netgrid-v2-9-2-has-been-released</link>
		<comments>http://www.blog.dapfor.com/netgrid-v2-9-2-has-been-released#comments</comments>
		<pubDate>Mon, 05 Aug 2013 17:24:42 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[bug fixing]]></category>
		<category><![CDATA[new release]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.Net Grid features]]></category>
		<category><![CDATA[INotifyPropertyChanged]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=227</guid>
		<description><![CDATA[A significant increase in productivity when working with objects that implement the INotifyPropertyChanged interface The following bug has been fixed: [BUG] Fixed a bug where the grid redraw the content of the entire row upon receiving notification from INotifyPropertyChanged interface for missing or hidden column. [BUG] Fixed minor bugs in the designer.]]></description>
			<content:encoded><![CDATA[<p>A significant increase in productivity when working with objects that implement the <a href="http://msdn2.microsoft.com/es-es/library/ms133020" target="_blank">INotifyPropertyChanged</a> interface</p>
<p>The following bug has been fixed:</p>
<ul>
<li>[BUG] Fixed a bug where the grid redraw the content of the entire row upon receiving notification from <a href="http://msdn2.microsoft.com/es-es/library/ms133020" target="_blank">INotifyPropertyChanged</a> interface for missing or hidden column.</li>
<li>[BUG] Fixed minor bugs in the designer.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/netgrid-v2-9-2-has-been-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NetGrid v2.9.0 has been released. New features and bug fixes</title>
		<link>http://www.blog.dapfor.com/netgrid-v2-9-0-has-been-released-new-features-and-bug-fixes</link>
		<comments>http://www.blog.dapfor.com/netgrid-v2-9-0-has-been-released-new-features-and-bug-fixes#comments</comments>
		<pubDate>Wed, 05 Jun 2013 20:19:51 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[bug fixing]]></category>
		<category><![CDATA[new release]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.Net Grid features]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=215</guid>
		<description><![CDATA[We are glad to introduce a new grid version with improved performance and stability. We have added dozens new tests to cover various grid functions. We want to thank our customers for their feedback on products and ease of use and critical comments that help us make our products best on the market. The following [...]]]></description>
			<content:encoded><![CDATA[<p>We are glad to introduce a new grid version with improved performance and stability. We have added dozens new tests to cover various grid functions. We want to thank our customers for their feedback on products and ease of use and critical comments that help us make our products best on the market.</p>
<p>The following features have been added:</p>
<ul>
<li>[NEW] Added column filter serialization</li>
<li>[NEW] Reengineered grid designer introducing intuitive and convenient user interface.</li>
<li>[NEW] Significantly improved grid performance with selection large data volumes.</li>
<li>[NEW] Overall performance improvement.</li>
</ul>
<p>The following bugs have been fixed:</p>
<ul>
<li>[BUG] Fixed an error with the grid not unsubscribing from objects with composite properties when objects are removed from the grid.</li>
<li>[BUG] Fixed an error with Dapfor.Net.dll not appearing in the list of available assemblies in Visual Studio.</li>
<li>[BUG] Fixed an error with Column.Appearance property hiding cell highlighting.</li>
<li>Minor bug fixes</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/netgrid-v2-9-0-has-been-released-new-features-and-bug-fixes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NetGrid v2.8.5 has been released. New features and bug fixes</title>
		<link>http://www.blog.dapfor.com/netgrid-v2-8-5-has-been-released-new-features-and-bug-fixes</link>
		<comments>http://www.blog.dapfor.com/netgrid-v2-8-5-has-been-released-new-features-and-bug-fixes#comments</comments>
		<pubDate>Tue, 18 Dec 2012 22:45:40 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[basket viewer]]></category>
		<category><![CDATA[bug fixing]]></category>
		<category><![CDATA[new release]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.Net Grid features]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[threading]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=205</guid>
		<description><![CDATA[The new version includes several bug fixes and new features added to Dapfor’s framework. The following features have been added: [NEW] added new DecimalFormat and a corresponding DecimalFormatAttribute for declarative formatting. public class Product { private decimal price; [DecimalFormat(Precision = 3, ShortForm = true, ShowZero = false)] public decimal Price { get { return price; [...]]]></description>
			<content:encoded><![CDATA[<div id="sectionSectionID0EVAAA">The new version includes several bug fixes and new features added to Dapfor’s framework. The following features have been added:</div>
<div id="sectionSectionID0EVAAA">
<ul>
<li>[NEW] added new <a href="http://doc.dapfor.com/net-suite/html/T_Dapfor_Net_Formats_DecimalFormat.htm">DecimalFormat</a> and a corresponding <a href="http://doc.dapfor.com/net-suite/html/T_Dapfor_Net_Formats_DecimalFormatAttribute.htm">DecimalFormatAttribute</a> for declarative formatting.
<div>
<pre>public class Product
{
    private decimal price;

    [DecimalFormat(Precision = 3, ShortForm = true, ShowZero = false)]
    public decimal Price
    {
        get { return price; }
    }
}</pre>
</div>
</li>
<li>[NEW] Added new <a href="http://doc.dapfor.com/net-suite/html/E_Dapfor_Net_Ui_Grid_FocusedColumnChanged.htm">Grid.FocusedColumnChanged</a> event.</li>
<li>[NEW] Added a section for <a href="http://www.dapfor.com/en/net-suite/net-grid/tutorial/appearance">grid painting system</a>.</li>
<li>[NEW] Added a section for <a href="http://www.dapfor.com/en/net-suite/net-grid/tutorial/cell-highlighting">cell highlighting system</a>.</li>
<li>[NEW] Added a new example that demonstrates design of <a href="http://www.dapfor.com/en/net-suite/net-grid/tutorial/basket-viewer">Backet component</a> that is used for measuring weight of financial instruments in the basket. Contains detailed explanation of main principles of developing high-performance application with intensive computing operations. Describes specifis of painting system in Windows OS.</li>
</ul>
<p>The following bugs have been fixed:</p>
<ul>
<li>[BUG] The standard editor drop-downs do not appear on the correct monitor, if the main monitor is the right monitor, and the editor is being hosted on a monitor to the left of it.</li>
<li>[BUG] The grid didn’t start editing data if nullable types existed.</li>
<li>[BUG] If <a href="http://doc.dapfor.com/net-suite/html/P_Dapfor_Net_Ui_Grid_DataObjects.htm">Grid.DataObjects</a> were used, the grid didn’t clear collection on calling <a href="http://doc.dapfor.com/net-suite/html/M_Dapfor_Net_Ui_RowCollection_Clear.htm">Grid.Rows.Clear()</a> method.</li>
<li>[BUG] Change of focused columns was displayed incorrectly in <strong>FocusMode.Cell</strong> focusing mode.</li>
<li>[BUG] The grid was hiding some rows when binding data in grid with existing grouping.</li>
<li>Minor bug fixes</li>
</ul>
<p>&nbsp;</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/netgrid-v2-8-5-has-been-released-new-features-and-bug-fixes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NetGrid 2.7.0 has been released. New reporting features</title>
		<link>http://www.blog.dapfor.com/netgrid-2-7-0-released-reporting-features</link>
		<comments>http://www.blog.dapfor.com/netgrid-2-7-0-released-reporting-features#comments</comments>
		<pubDate>Sun, 19 Feb 2012 20:22:34 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[new release]]></category>
		<category><![CDATA[.Net Grid features]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[reporting]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=113</guid>
		<description><![CDATA[We have released a new version of .Net Grid! This version contains new reporting features and bug fixes. .Net Suite, v2.7.0 (Build 2.7.0.46034) [2012-02-20] Starting from version 2.7.0 grid functionality has been expanded with reporting and printing features. Programmers get simple and convenient interface for implementing new features and can significantly expand capabilities of target [...]]]></description>
			<content:encoded><![CDATA[<p>We have released a new version of .Net Grid!  This version contains new reporting features and bug fixes.</p>
<p><strong>.Net Suite, v2.7.0 (Build 2.7.0.46034) [2012-02-20]</strong></p>
<p>Starting from version 2.7.0 grid functionality has been expanded with <a href="http://www.dapfor.com/en/net-suite/net-grid/features/reporting">reporting and printing features</a>. Programmers get simple and convenient interface for implementing new features and can significantly expand capabilities of target applications.</p>
<table>
<tr>
<td>
<a href="http://www.blog.dapfor.com/netgrid-2-7-0-released-reporting-features/print_preview" rel="attachment wp-att-114"><img src="http://www.blog.dapfor.com/wp-content/uploads/2012/02/print_preview.png" alt=".Net Grid reporting features" title="print_preview" width="375" height="554" class="aligncenter size-full wp-image-114" /></a>
</td>
</tr>
</table>
<p><br/><br />
<strong>Reporting features:</strong></p>
<ul>
<li>Software control of reporting with full customization support.</li>
<li>Possibility of adding any images or text to printed pages.</li>
<li>Page spanning: If there are too many fields to fit on one page, the fields can span two or more pages.</li>
<li>Repeating headers: to improve document readability the grid can insert headers to every printed page.</li>
<li>Reports for top-level headers and child headers with relevant content.</li>
<li>Hiding headers in reports</li>
<li>Repeating selectors: if content has many columns, the grid can span it over multiple pages. This feature can insert row selector to every page.</li>
<li>Print preview feature</li>
<li>Portrait or landscape page orientation</li>
</ul>
<p><strong>The following bug has been fixed:</strong></p>
<ul>
<li>[BUG] .Net Grid wrongly filters the content if two filters (<strong>Grid.Filter</strong> and <strong>Column.Filter</strong>) are set simultaneously.</li>
</ul>
<p>Professionals working with complex systems will surely appreciate our efforts that make the code simpler and improve its reliability. Let&#8217;s create the best applications together!<br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/netgrid-2-7-0-released-reporting-features/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Declarative data binding</title>
		<link>http://www.blog.dapfor.com/declarative-data-binding</link>
		<comments>http://www.blog.dapfor.com/declarative-data-binding#comments</comments>
		<pubDate>Thu, 09 Feb 2012 22:29:42 +0000</pubDate>
		<dc:creator>dapadm</dc:creator>
				<category><![CDATA[Data binding]]></category>
		<category><![CDATA[.Net Grid features]]></category>
		<category><![CDATA[databinding]]></category>
		<category><![CDATA[hierarchy]]></category>
		<category><![CDATA[IBindingList]]></category>
		<category><![CDATA[INotifyPropertyChanged]]></category>

		<guid isPermaLink="false">http://www.blog.dapfor.com/?p=39</guid>
		<description><![CDATA[Component model has two basic interfaces that are broadly used in data binding: INotifyPropertyChanged and IBindingList. The first interface notifies subscribers of bound object modifications while the second one notifies of object collection modifications. Object collections usually don’t contain hierarchy information and they are not intended for this purpose. Different grid developers use different ways [...]]]></description>
			<content:encoded><![CDATA[<p>Component model has two basic interfaces that are broadly used in data binding: <strong>INotifyPropertyChanged</strong> and <strong>IBindingList</strong>. The first interface notifies subscribers of bound object modifications while the second one notifies of object collection modifications. Object collections usually don’t contain hierarchy information and they are not intended for this purpose. Different grid developers use different ways to overcome this limitation. Some of them represent IBindingList as a collection containing objects linked by “id – parent id” relations, while the others expand IBindingList syntax adding hierarchy methods to it. We think that both solutions increase code overhead and reduce performance (which is critical for real time applications). </p>
<p>In our opinion, IBindingList should not contain hierarchy information. It is possible to use multiple binding lists to build it. For example, let’s take Strategy class that may contain multiple orders that can be dynamically added to this class or removed from it.</p>
<pre>
class Order
{
   ...
}

public class Strategy
{
    private readonly BindingList&lt;Order&gt; _orders = new BindingList&lt;Order&#038;gt();

    public IList&lt;Order&gt; Orders
    {
        get { return _orders; }
    }
}

//Add a new order to a strategy:
Order order = ...;
strategy.Orders.Add(order);

//Add a strategy to a grid
Strategy strategy = ...
grid.Rows.Add(strategy);
</pre>
<p><br/>Let’s note that when a strategy is added to the grid, it cannot display orders as it doesn’t have hierarchy information. It is possible to use declarative binding to tell the grid that <strong>Strategy.Orders</strong> field should be viewed as hierarchy foundation. </p>
<pre>
public class Strategy
{
    <strong>[HierarchicalField]</strong>
    public IList&lt;Order&gt; Orders
    {
        ...
    }
}
</pre>
<p><br/>When a strategy is added to the grid, it automatically subscribes to binding list returned by this strategy. It enables to use full-featured hierarchical binding with dynamic hierarchy modification without direct access to data presentation layer. To ensure complete separation of presentation layer from data layer we shall place strategy objects to <strong>IBindingList</strong>:</p>
<pre>
BindingList&lt;Strategy&gt; strategies = new BindingList&lt;Strategy&gt;();
//Populate collection with strategies
...

//Bind collection to the grid
grid.DataSource = strategies;

----- Strategies and orders will be presented in .Net Grid as following ---------------
+ Strategy
 |- Order
 |- Order
 | ...
+ Strategy
 |- Order
 |- Order
 | ...
</pre>
<p><br/>Conclusion:<br />
In our example we have achieved full separation of data from presentation. Data manipulation doesn’t require access to control, and this is true for hierarchical declarative data binding as well. Let’s also note that displayed data can be grouped, sorted and filtered without additional effort of the programmer. </p>
<p>In our opinion, the above hierarchy building method is one of the most efficient methods provided by the grid. Besides declarative binding, it is possible to build a hierarchy by simply adding data objects to any row. It is also possible to use conditional binding and binding on any hierarchy level.  </p>
<p>Programmers working with actual applications know how much code is required to complete a seemingly simple task of representing hierarchy data in the grid and synchronize it with grid presentation (adding and removing rows, etc). They will definitely appreciate our efforts in this field. </p>
<p>For more information of declarative data binding click <a href="http://www.dapfor.com/en/net-suite/net-grid/features/hierarchical-data-binding">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.dapfor.com/declarative-data-binding/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
