<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1376361569711944681</id><updated>2012-01-17T13:53:01.160-08:00</updated><category term='Sharepoint 2010'/><title type='text'>Nick Zhebrun</title><subtitle type='html'>object reference set to an instance of an object</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-3420123504948379374</id><published>2011-11-22T10:05:00.000-08:00</published><updated>2011-11-22T10:17:19.855-08:00</updated><title type='text'>AnjLab Sql Profiler with Application Performance Dashboard is out!</title><content type='html'>New version of &lt;a href="https://sites.google.com/site/sqlprofiler/"&gt;AnjLab SQL Profiler 1.2 &lt;/a&gt;is out. The main feature of the release is Application Performance Dashboard. Using this feature you can profile your database server queries grouped by application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-3420123504948379374?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/3420123504948379374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=3420123504948379374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/3420123504948379374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/3420123504948379374'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2011/11/anjlab-sql-profiler-with-application.html' title='AnjLab Sql Profiler with Application Performance Dashboard is out!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-1589074758926076575</id><published>2011-08-30T03:20:00.003-07:00</published><updated>2011-08-30T03:20:24.547-07:00</updated><title type='text'>AnjLab Sharepoint 2010 RichControls now is open source</title><content type='html'>Hi!&lt;br /&gt;&lt;br /&gt;AnjLab Sharepoint 2010 RichControls now is an open-source. Here is the link: https://github.com/AnfiniL/richcontrols&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-1589074758926076575?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/1589074758926076575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=1589074758926076575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1589074758926076575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1589074758926076575'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2011/08/anjlab-sharepoint-2010-richcontrols-now.html' title='AnjLab Sharepoint 2010 RichControls now is open source'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-7018176331190121064</id><published>2011-06-01T10:11:00.001-07:00</published><updated>2011-06-01T10:11:08.717-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010'/><title type='text'>Sharepoint: how to move ListItem or Folder to another folder</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I created the utility method that moves list item or folder to another folder.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: white; color: black; font-family: Consolas; font-size: 13;"&gt;&lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;summary&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt;&amp;nbsp;Moves&amp;nbsp;item&amp;nbsp;to&amp;nbsp;folder&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: grey;"&gt;///&lt;/span&gt;&lt;span style="color: grey;"&gt;;&lt;/span&gt;&lt;span style="color: green;"&gt;Path&amp;nbsp;like&amp;nbsp;'Folder1/Folder2/'&lt;/span&gt;&lt;/summary&gt;&lt;/span&gt;&lt;span style="color: grey;"&gt;&lt;param&amp;nbsp;name=&lt; span=""&gt;&lt;span style="color: grey;"&gt;&lt;param&amp;nbsp;name=&lt; span=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;void&lt;/span&gt;&amp;nbsp;MoveItemTo(&lt;span style="color: #2b91af;"&gt;SPListItem&lt;/span&gt;&amp;nbsp;item,&amp;nbsp;&lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;nbsp;path)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;switch&lt;/span&gt;&amp;nbsp;(item.FileSystemObjectType)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af;"&gt;SPFileSystemObjectType&lt;/span&gt;.Folder:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&amp;nbsp;newFolder&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"&lt;/span&gt;&lt;span style="color: mediumseagreen;"&gt;{0}&lt;/span&gt;&lt;span style="color: #a31515;"&gt;/&lt;/span&gt;&lt;span style="color: mediumseagreen;"&gt;{1}{2}&lt;/span&gt;&lt;span style="color: #a31515;"&gt;"&lt;/span&gt;,&amp;nbsp;item.ParentList.RootFolder.Url,&amp;nbsp;path,&amp;nbsp;item.Folder.Name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;item.Folder.MoveTo(newFolder);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af;"&gt;SPFileSystemObjectType&lt;/span&gt;.File:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&amp;nbsp;file&amp;nbsp;=&amp;nbsp;item.Web.GetFile(item.Url);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&amp;nbsp;newFilePath&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"&lt;/span&gt;&lt;span style="color: mediumseagreen;"&gt;{0}&lt;/span&gt;&lt;span style="color: #a31515;"&gt;/&lt;/span&gt;&lt;span style="color: mediumseagreen;"&gt;{1}{2}&lt;/span&gt;&lt;span style="color: #a31515;"&gt;_.000"&lt;/span&gt;,&amp;nbsp;item.ParentList.RootFolder.Url,&amp;nbsp;path,&amp;nbsp;item.ID);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file.MoveTo(newFilePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/param&amp;nbsp;name=&lt;&gt;&lt;/span&gt;&lt;/param&amp;nbsp;name=&lt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-7018176331190121064?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/7018176331190121064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=7018176331190121064' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/7018176331190121064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/7018176331190121064'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2011/06/sharepoint-how-to-move-listitem-or.html' title='Sharepoint: how to move ListItem or Folder to another folder'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-2835733910059332505</id><published>2011-05-05T06:10:00.000-07:00</published><updated>2011-05-05T06:23:49.866-07:00</updated><title type='text'>New AnjLab SQL Profiler with Performance Dashboard is out!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;New &lt;a href="http://sites.google.com/site/sqlprofiler/"&gt;AnjLab SQL Profiler&lt;/a&gt; with Performance Dashboard is out! Performance Dashboard is forgotten by Microsoft guys cool utility that shows your server performance using reports.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, Arial, sans-serif; font-size: 11px;"&gt;The SQL Server Performance Dashboard Reports &amp;nbsp;allow a database administrator to quickly identify whether there is a current bottleneck on their system, and if a bottleneck is present, capture additional diagnostic data that may be necessary to resolve the problem. For example, if the system is experiencing waits for disk IO the dashboard allows the user to quickly see which sessions are performing the most IO, what query is running on each session and the query plan for each statement.&lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class=""&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, Arial, sans-serif; font-size: 11px;"&gt;Common performance problems that the dashboard reports may help to resolve include:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, Arial, sans-serif; font-size: 11px;"&gt;CPU bottlenecks (and what queries are consuming the most CPU)&lt;/span&gt;&lt;/li&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, Arial, sans-serif; font-size: 11px;"&gt;&lt;li&gt;IO bottlenecks (and what queries are performing the most IO).&lt;/li&gt;&lt;li&gt;Index recommendations generated by the query optimizer (missing indexes)&lt;/li&gt;&lt;li&gt;Blocking&lt;/li&gt;&lt;li&gt;Latch contention&amp;nbsp;&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, Arial, sans-serif; font-size: 11px;"&gt;The information captured in the reports is retrieved from SQL Server's dynamic management views. There is no additional tracing or data capture required, which means the information is always available and this is a very inexpensive means of monitoring your server.&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-C8fG04Z1pz4/TcKkxOlxdnI/AAAAAAAAFM0/LxaXkiuJkdw/s1600/sql-performance-dashboard.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="311" src="http://3.bp.blogspot.com/-C8fG04Z1pz4/TcKkxOlxdnI/AAAAAAAAFM0/LxaXkiuJkdw/s400/sql-performance-dashboard.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;SQL Profiler installs Performance Dashboard automatically and provides interface for reports. You can download it &lt;a href="http://sites.google.com/site/sqlprofiler/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-2835733910059332505?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/2835733910059332505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=2835733910059332505' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2835733910059332505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2835733910059332505'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2011/05/new-anjlab-sql-profiler-with.html' title='New AnjLab SQL Profiler with Performance Dashboard is out!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-C8fG04Z1pz4/TcKkxOlxdnI/AAAAAAAAFM0/LxaXkiuJkdw/s72-c/sql-performance-dashboard.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-6903987823503789369</id><published>2011-03-23T07:48:00.000-07:00</published><updated>2011-03-23T07:50:50.616-07:00</updated><title type='text'>Sharepoint Provider Load Failure</title><content type='html'>To solve this problem restart Windows Management Instrumentation service (on russian "Инструментарий управления Windows")&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-6903987823503789369?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/6903987823503789369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=6903987823503789369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/6903987823503789369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/6903987823503789369'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2011/03/sharepoint-provider-load-failure.html' title='Sharepoint Provider Load Failure'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-4672946547827686149</id><published>2011-03-17T13:59:00.000-07:00</published><updated>2011-03-17T14:08:05.659-07:00</updated><title type='text'>sharepoint "Content types that are available to this Document Set have been added or removed. Update the Document Set."</title><content type='html'>When you create Document Set in Sharepoint 2010 via code you can get strange notification message: "Content types that are available to this Document Set have been added or removed. Update the Document Set."&lt;br /&gt;&lt;br /&gt;Look at http://sharepointfieldnotes.blogspot.com/2010_06_01_archive.html:&lt;br /&gt;"The next step is to update the “docset_LastRefresh” property of the document set. Why? This  apparently is a stamp of approval by the SharePoint UI that the document set was configured correctly. If you do not set this, then you will have a nagging yellow bar at the top of the SharePoint UI stating that the document set is missing some content types and needs updating. You can click on the link and it will generate the property for you. This value is stored in the SPFolder.Properties property bag."&lt;br /&gt;&lt;br /&gt;If you set the docset_LastRefresh property via code you will hide the yellow line but you still have problems with 'Create document' button. It will be disabled.&lt;br /&gt;&lt;br /&gt;By 2 hours and reflector I found the solution: you should provision the document set.&lt;br /&gt;Run this code on you list item and be happy:&lt;br /&gt;&lt;br /&gt;DocumentSet.GetDocumentSet(listItem.Folder).Provision();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-4672946547827686149?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/4672946547827686149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=4672946547827686149' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/4672946547827686149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/4672946547827686149'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2011/03/sharepoint-content-types-that-are.html' title='sharepoint &quot;Content types that are available to this Document Set have been added or removed. Update the Document Set.&quot;'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-2294666800159143403</id><published>2011-01-31T03:04:00.000-08:00</published><updated>2011-01-31T03:07:50.834-08:00</updated><title type='text'>AnjLab Sharepoint 2010 RichControls</title><content type='html'>After a few months of lazy work I'm glad to introduce a new control for Sharepoint 2010: enhanced lookup control with autocomplete feature. The main features:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;No Sharepoint dropdowns and preloaded data&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Quick data finding and selecting using autocomplete&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Select fields you would like to see in autocomplete box&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Supports single-selection and multi-selection modes&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Customizable title, description fields, look and behavior&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Filter lookup data using CAML queries at server side!&lt;li&gt;&lt;br /&gt; &lt;li&gt;Adds button to create new item in lookup list&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Use RichControl with Sharepoint 2010 lookup fields&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Supports languages (English and Russian included)&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Uses &lt;a href="http://jquery.com" target="_blank"&gt;JQuery&lt;/a&gt; library&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Delivered as Sharepoint Solution Package (WSP)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;You can get more information here: &lt;a href="http://anjlab.com/en/project/sharepoint2010-richcontrols"&gt;http://anjlab.com/en/project/sharepoint2010-richcontrols&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-2294666800159143403?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/2294666800159143403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=2294666800159143403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2294666800159143403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2294666800159143403'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2011/01/anjlab-sharepoint-2010-richcontrols.html' title='AnjLab Sharepoint 2010 RichControls'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-3800857087669355677</id><published>2010-11-16T05:01:00.001-08:00</published><updated>2010-11-16T05:03:33.553-08:00</updated><title type='text'>Sharepoint: why content type fields are not required even they are setted as required?</title><content type='html'>Content type fields are not required even they are created as required in xml reference. To fix it use uppercase letters on boolean values of xml attributes: required="TRUE".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-3800857087669355677?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/3800857087669355677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=3800857087669355677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/3800857087669355677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/3800857087669355677'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2010/11/sharepoint-why-content-type-fields-are.html' title='Sharepoint: why content type fields are not required even they are setted as required?'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-8989781412159833302</id><published>2010-11-16T04:57:00.000-08:00</published><updated>2010-11-16T05:04:01.037-08:00</updated><title type='text'>Sharepoint: Visual Studio 2010 does not refresh Sharepoint Site Contents</title><content type='html'>Sometimes Visual Studio 2010 does not refresh Sharepoint Site Contents. Rebooting does not help. I didn't find the way to fix it in generic way. To avoid this problem I changed ID's of content types.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-8989781412159833302?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/8989781412159833302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=8989781412159833302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8989781412159833302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8989781412159833302'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2010/11/sharepoint-visual-studio-2010-does-not.html' title='Sharepoint: Visual Studio 2010 does not refresh Sharepoint Site Contents'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-2931126499368907643</id><published>2010-11-08T07:48:00.000-08:00</published><updated>2010-11-08T07:55:06.077-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint 2010'/><title type='text'>Sharepoint: как сделать название списка русским, имея "правильный" URL</title><content type='html'>Sharepoint имеет 2 названия для списков: Internal Name - внутреннее имя списка и Display Name - имя для отображения. Внутреннее имя задается один раз при создании списка, а имя для отображения можно менять сколько угодно раз. &lt;br /&gt;Если в коде эти параметры можно указать, то в случае использования Sharepoint или Sharepoint Designer эти имена принимают значения, указанные при вводе название списка. Всвязи с этим URL списка представляет собой escape-последовательность русского названия. &lt;br /&gt;Чтобы обойти это сперва назовите список английским именем, а затем переименуйте по-русски.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-2931126499368907643?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/2931126499368907643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=2931126499368907643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2931126499368907643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2931126499368907643'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2010/11/sharepoint-url.html' title='Sharepoint: как сделать название списка русским, имея &quot;правильный&quot; URL'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-7402908609159755523</id><published>2010-06-10T02:36:00.000-07:00</published><updated>2010-06-10T02:37:12.868-07:00</updated><title type='text'>New version of AnjLab.SqlProfiler is out!</title><content type='html'>We released the new version of the AnjLab.SqlProfiler (0.1.1094.67). Most of bugs are fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-7402908609159755523?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/7402908609159755523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=7402908609159755523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/7402908609159755523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/7402908609159755523'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2010/06/new-version-of-anjlabsqlprofiler-is-out.html' title='New version of AnjLab.SqlProfiler is out!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-1058313331807553685</id><published>2010-04-13T03:52:00.000-07:00</published><updated>2010-04-13T03:58:36.975-07:00</updated><title type='text'>C#: RefreshSection method of ConfigurationManager is not refreshing sections under debug mode</title><content type='html'>RefreshSection method of ConfigurationManager is not refreshing sections when you run application at Visual Studio. Try to run application without VS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-1058313331807553685?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/1058313331807553685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=1058313331807553685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1058313331807553685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1058313331807553685'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2010/04/c-refreshsection-method-of.html' title='C#: RefreshSection method of ConfigurationManager is not refreshing sections under debug mode'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-8962108762630368914</id><published>2009-07-31T03:21:00.000-07:00</published><updated>2009-07-31T03:26:52.950-07:00</updated><title type='text'>Rails 2.3.2 + Google Email App + ActionMailer</title><content type='html'>Today I have problem while sending mail via Google Email App which raises exception &lt;br /&gt;&lt;br /&gt;Net::SMTPAuthenticationError: 535-5.7.1 Username and Password not accepted. Learn more at                   &lt;br /&gt;&lt;br /&gt; from /usr/local/lib/ruby/1.8/net/smtp.rb:942:in `check_auth_response'&lt;br /&gt; from /usr/local/lib/ruby/1.8/net/smtp.rb:733:in `auth_plain'&lt;br /&gt; from /usr/local/lib/ruby/1.8/net/smtp.rb:725:in `send'&lt;br /&gt; from /usr/local/lib/ruby/1.8/net/smtp.rb:725:in `authenticate'&lt;br /&gt; from /usr/local/lib/ruby/1.8/net/smtp.rb:566:in `do_start'&lt;br /&gt; from /usr/local/lib/ruby/1.8/net/smtp.rb:525:in `start'&lt;br /&gt;&lt;br /&gt;The problem was in incorrect password that I entered before at my browser. After that Google wants captcha. To disable captcha go to https://www.google.com/a/[your domain].com/UnlockCaptcha and unlock captcha request. &lt;br /&gt;&lt;br /&gt;For more information you can read &lt;a href="http://mail.google.com/support/bin/answer.py?answer=14257"&gt;http://mail.google.com/support/bin/answer.py?answer=14257&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-8962108762630368914?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/8962108762630368914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=8962108762630368914' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8962108762630368914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8962108762630368914'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2009/07/rails-232-google-email-app-actionmailer.html' title='Rails 2.3.2 + Google Email App + ActionMailer'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-6747118865961502742</id><published>2009-07-03T09:20:00.000-07:00</published><updated>2009-07-03T09:24:31.363-07:00</updated><title type='text'>Yandex карты в Ruby on Rails</title><content type='html'>Давно использую плагин geokit-rails для ROR-проектов. Добавил Yandex-геокодинг. Теперь можно более точно искать объекты на просторах нашей необъятной родины и стран бывшего СССР.&lt;br /&gt;&lt;br /&gt;Ссылка: &lt;a href="http://github.com/AnfiniL/geokit-gem/tree/master"&gt;github&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-6747118865961502742?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/6747118865961502742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=6747118865961502742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/6747118865961502742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/6747118865961502742'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2009/07/yandex-ruby-on-rails.html' title='Yandex карты в Ruby on Rails'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-8199709068560916710</id><published>2009-02-13T11:19:00.000-08:00</published><updated>2009-02-13T12:32:32.479-08:00</updated><title type='text'>JADE is alive!</title><content type='html'>JADE team released version 2.0.1 of WOLF, the graphical development environment for WADE based applications.&lt;br /&gt;&lt;br /&gt;Caire Giovanni: &lt;blockquote&gt;We are pleased to announce the release of version 2.0.1 of WOLF, the graphical development environment for WADE based applications. As the version number states, this is mostly a consolidation release that fixes a number of problems related to the management of classes available in source form only.&lt;br /&gt;&lt;br /&gt;Even more important, however, is the release of a complete tutorial (&lt;a href="http://jade.tilab.com/wade/doc/tutorial/WADE-Tutorial.pdf"&gt;http://jade.tilab.com/wade/doc/tutorial/WADE-Tutorial.pdf&lt;/a&gt;) that guides the reader through all the steps necessary to develop an application where the main agent tasks are defined in from of workflows. The tutorial addresses a simple yet sufficiently articulated scenario and describes the creation of a complete multi agent system from the project setup to the execution highlighting noteworthy aspects such as invoking web services and delegating subflows. The complete source code of the application described in the tutorial is available for download at (&lt;a href="http://jade.tilab.com/wade/doc/tutorial/toysAssembler.zip"&gt;http://jade.tilab.com/wade/doc/tutorial/toysAssembler.zip&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;WOLF is an Eclipse (&lt;a href="www.eclipse.org"&gt;www.eclipse.org&lt;/a&gt;) plug-in and is distributed OPEN SOURCE by Telecom Italia S.p.A. under the terms of the LGPL Version 2 License. It can be downloaded at &lt;a href="http://jade.tilab.com/wade/html/download.php"&gt;http://jade.tilab.com/wade/html/download.php&lt;/a&gt;.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-8199709068560916710?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/8199709068560916710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=8199709068560916710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8199709068560916710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8199709068560916710'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2009/02/jade-is-alive.html' title='JADE is alive!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-5804834341944395824</id><published>2009-01-11T23:11:00.000-08:00</published><updated>2009-01-11T23:12:19.565-08:00</updated><title type='text'>New version of SQL Server Express Profiler is out!</title><content type='html'>The new version of SQL Express Profiler is out! Now it supports SQL Server Express 2008! Sorry for delay. You can find it &lt;a href="http://sqlprofiler.googlepages.com/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-5804834341944395824?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/5804834341944395824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=5804834341944395824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/5804834341944395824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/5804834341944395824'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2009/01/new-version-of-sql-server-express.html' title='New version of SQL Server Express Profiler is out!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-1923713069158077839</id><published>2008-09-22T06:14:00.000-07:00</published><updated>2008-09-22T06:19:18.186-07:00</updated><title type='text'>New version of AnjLab.SqlProfiler is out!</title><content type='html'>We released the new version of the AnjLab.SqlProfiler (0.1.468.59). The list of new features:&lt;br /&gt; - deployment using installer&lt;br /&gt; - select / deselect all events&lt;br /&gt; - save events settings&lt;br /&gt; - auto-resize columns&lt;br /&gt; - now it contains all needed Microsoft libraries from SQL Server SDK&lt;br /&gt; - and other.&lt;br /&gt;&lt;br /&gt;We want to thanks all users who submitted feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-1923713069158077839?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/1923713069158077839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=1923713069158077839' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1923713069158077839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1923713069158077839'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/09/new-version-of-anjlabsqlprofiler-is-out.html' title='New version of AnjLab.SqlProfiler is out!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-1887196890141956027</id><published>2008-09-04T03:24:00.000-07:00</published><updated>2008-09-04T03:32:26.569-07:00</updated><title type='text'>Are you tired to create DataTemplateSelector? Use GenericDataTemplateSelector!</title><content type='html'>Programming using WPF is a very cool programming. But sometimes WPF framework upsets of absence some useful functionallity. One of them is creating DataTemplateSelector directly in xaml. Here is the code of GenericDataTemplateSelector which can be defined in xaml:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;pre style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;GenericDataTemplateSelector&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;DataTemplateSelector&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;DataTemplateSelectorItem&lt;/span&gt;[] DataTemplateSelectorItems { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;DataTemplate&lt;/span&gt; SelectTemplate(&lt;span style="color: blue;"&gt;object&lt;/span&gt; item, System.Windows.&lt;span style="color: #2b91af;"&gt;DependencyObject&lt;/span&gt; container)&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (item != &lt;span style="color: blue;"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; DataTemplateSelectorItems != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt;(&lt;span style="color: blue;"&gt;var&lt;/span&gt; selectorItem &lt;span style="color: blue;"&gt;in&lt;/span&gt; DataTemplateSelectorItems)&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; value = &lt;span style="color: #2b91af;"&gt;Reflector&lt;/span&gt;.GetValue(item, selectorItem.PropertyName);&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (selectorItem.Value.Equals(&lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToString(value)))&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; selectorItem.Template;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;DataTemplateSelectorItem&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; PropertyName { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Value { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;DataTemplate&lt;/span&gt; Template { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; } &lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Reflector is static class which uses ferlection to retrieve value of property.&lt;br /&gt;&lt;br /&gt;Now you can define custom DataTemplateSelector in xaml:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;pre style="margin: 0px;"&gt;&amp;lt;fx:GenericDataTemplateSelector x:Key=&lt;span style="color: #a31515;"&gt;"executionStatusSelector"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fx:GenericDataTemplateSelector.DataTemplateSelectorItems&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fx:DataTemplateSelectorItem PropertyName=&lt;span style="color: #a31515;"&gt;"ExecutionStatusID"&lt;/span&gt; Value=&lt;span style="color: #a31515;"&gt;"0"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fx:DataTemplateSelectorItem.Template&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataTemplate&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Image Source=&lt;span style="color: #a31515;"&gt;"{StaticResource greenBulletImageSource}"&lt;/span&gt;/&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataTemplate&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fx:DataTemplateSelectorItem.Template&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fx:DataTemplateSelectorItem&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fx:DataTemplateSelectorItem PropertyName=&lt;span style="color: #a31515;"&gt;"ExecutionStatusID"&lt;/span&gt; Value=&lt;span style="color: #a31515;"&gt;"1"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fx:DataTemplateSelectorItem.Template&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataTemplate&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Image Source=&lt;span style="color: #a31515;"&gt;"{StaticResource orangeBulletImageSource}"&lt;/span&gt;/&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataTemplate&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fx:DataTemplateSelectorItem.Template&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fx:DataTemplateSelectorItem&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fx:DataTemplateSelectorItem PropertyName=&lt;span style="color: #a31515;"&gt;"ExecutionStatusID"&lt;/span&gt; Value=&lt;span style="color: #a31515;"&gt;"2"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fx:DataTemplateSelectorItem.Template&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataTemplate&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Image Source=&lt;span style="color: #a31515;"&gt;"{StaticResource blackBulletImageSource}"&lt;/span&gt;/&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataTemplate&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fx:DataTemplateSelectorItem.Template&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fx:DataTemplateSelectorItem&amp;gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fx:GenericDataTemplateSelector&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-1887196890141956027?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/1887196890141956027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=1887196890141956027' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1887196890141956027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1887196890141956027'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/09/are-you-tired-to-create.html' title='Are you tired to create DataTemplateSelector? Use GenericDataTemplateSelector!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-1884303010812638348</id><published>2008-09-01T14:41:00.000-07:00</published><updated>2008-09-01T14:43:23.237-07:00</updated><title type='text'>Статистика Google AdSense по проекту AnjLab.SqlProfiler</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kn6oooGAjqU/SLxhzshHCCI/AAAAAAAAAA8/P5UfKnM5e4w/s1600-h/image001.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_kn6oooGAjqU/SLxhzshHCCI/AAAAAAAAAA8/P5UfKnM5e4w/s320/image001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5241171607103670306" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-1884303010812638348?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/1884303010812638348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=1884303010812638348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1884303010812638348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/1884303010812638348'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/09/google-adsense-anjlabsqlprofiler.html' title='Статистика Google AdSense по проекту AnjLab.SqlProfiler'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kn6oooGAjqU/SLxhzshHCCI/AAAAAAAAAA8/P5UfKnM5e4w/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-4680295616535804498</id><published>2008-03-31T08:00:00.000-07:00</published><updated>2008-03-31T08:19:14.661-07:00</updated><title type='text'>WPF bug with ValidationError</title><content type='html'>If you use validation errors in your WPF application you can meet the following exception during runtime validation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;System.Windows.Data Error: 12 : Cannot get '' value (type 'ValidationError') from '(Validation.Errors)' (type 'ReadOnlyObservableCollection`1'). BindingExpression:Path=(0).[0].ErrorContent; DataItem='TextBox' (Name='textBox1'); target element is 'TextBox' (Name='textBox1'); target property is 'ToolTip' (type 'Object') TargetInvocationException:'System.Reflection.TargetInvocationException...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To fix this problem you should create your own ValueConverter:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;pre style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;ErrorContentConverter&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;IValueConverter&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; Convert(&lt;span style="color: blue;"&gt;object&lt;/span&gt; value, &lt;span style="color: #2b91af;"&gt;Type&lt;/span&gt; targetType, &lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter, &lt;span style="color: #2b91af;"&gt;CultureInfo&lt;/span&gt; culture)&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; errors = value &lt;span style="color: blue;"&gt;as&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;ReadOnlyObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af;"&gt;ValidationError&lt;/span&gt;&amp;gt;;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (errors == &lt;span style="color: blue;"&gt;null&lt;/span&gt;) &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: #a31515;"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; errors.Count &amp;gt; 0 ? errors[0].ErrorContent : &lt;span style="color: #a31515;"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; ConvertBack(&lt;span style="color: blue;"&gt;object&lt;/span&gt; value, &lt;span style="color: #2b91af;"&gt;Type&lt;/span&gt; targetType, &lt;span style="color: blue;"&gt;object&lt;/span&gt; parameter, &lt;span style="color: #2b91af;"&gt;CultureInfo&lt;/span&gt; culture)&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;throw&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;NotImplementedException&lt;/span&gt;();&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After that you can use ValidationErrors in your style trigger with the following way:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;pre style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color: red;"&gt; Property&lt;/span&gt;&lt;span style="color: blue;"&gt;="Validation.HasError"&lt;/span&gt;&lt;span style="color: red;"&gt; Value&lt;/span&gt;&lt;span style="color: blue;"&gt;="True"&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&lt;span style="color: #a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color: red;"&gt; Property&lt;/span&gt;&lt;span style="color: blue;"&gt;="ToolTip"&lt;/span&gt;&lt;span style="color: red;"&gt; Value&lt;/span&gt;&lt;span style="color: blue;"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color: red;"&gt; RelativeSource&lt;/span&gt;&lt;span style="color: blue;"&gt;={&lt;/span&gt;&lt;span style="color: #a31515;"&gt;x&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Static&lt;/span&gt;&lt;span style="color: red;"&gt; RelativeSource&lt;/span&gt;&lt;span style="color: blue;"&gt;.&lt;/span&gt;&lt;span style="color: red;"&gt;Self&lt;/span&gt;&lt;span style="color: blue;"&gt;},&lt;/span&gt;&lt;span style="color: red;"&gt; Path&lt;/span&gt;&lt;span style="color: blue;"&gt;=(Validation.Errors),&lt;/span&gt;&lt;span style="color: red;"&gt; Converter&lt;/span&gt;&lt;span style="color: blue;"&gt;={&lt;/span&gt;&lt;span style="color: #a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color: red;"&gt; errorConverter&lt;/span&gt;&lt;span style="color: blue;"&gt;}}"/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&lt;span style="color: #a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color: red;"&gt; TargetName&lt;/span&gt;&lt;span style="color: blue;"&gt;="Border"&lt;/span&gt;&lt;span style="color: red;"&gt; Property&lt;/span&gt;&lt;span style="color: blue;"&gt;="BorderBrush"&lt;/span&gt;&lt;span style="color: red;"&gt; Value&lt;/span&gt;&lt;span style="color: blue;"&gt;="Blue" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin: 0px;"&gt;&lt;span style="color: #a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Trigger&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-4680295616535804498?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/4680295616535804498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=4680295616535804498' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/4680295616535804498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/4680295616535804498'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/03/wpf-bug-with-validationerror.html' title='WPF bug with ValidationError'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-8665883289112238247</id><published>2008-03-14T04:00:00.000-07:00</published><updated>2008-03-14T04:02:25.030-07:00</updated><title type='text'>Посещаемость ресурса Sql Profiler перевалила за 100 человек в день</title><content type='html'>Свершилось! 12 марта 2008 г. сайт &lt;a href="http://sqlprofiler.googlepages.com"&gt;AnjLab.SqlProfiler&lt;/a&gt; посетило 106 человек.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-8665883289112238247?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/8665883289112238247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=8665883289112238247' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8665883289112238247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8665883289112238247'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/03/sql-profiler-100.html' title='Посещаемость ресурса Sql Profiler перевалила за 100 человек в день'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-2252882869910652044</id><published>2008-02-27T05:53:00.000-08:00</published><updated>2008-02-27T05:59:58.636-08:00</updated><title type='text'>Я - к.т.н!</title><content type='html'>Наконец я получил уведомление о том, что моя защита кандидатской диссертации утверждена ВАК. Теперь я - к.т.н., осталось только получить диплом.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-2252882869910652044?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/2252882869910652044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=2252882869910652044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2252882869910652044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2252882869910652044'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/02/blog-post_27.html' title='Я - к.т.н!'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-2800307539567614623</id><published>2008-02-21T09:44:00.001-08:00</published><updated>2008-02-21T10:00:59.027-08:00</updated><title type='text'>За последние 20 дней AnjLab.SqlProfiler «заработал» 30$</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_kn6oooGAjqU/R728Ut0aAaI/AAAAAAAAAAU/6sD6lVTN4ww/s1600-h/image001.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_kn6oooGAjqU/R728Ut0aAaI/AAAAAAAAAAU/6sD6lVTN4ww/s320/image001.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5169495011374006690" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-2800307539567614623?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/2800307539567614623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=2800307539567614623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2800307539567614623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2800307539567614623'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/02/20-anjlabsqlprofiler-30.html' title='За последние 20 дней AnjLab.SqlProfiler «заработал» 30$'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_kn6oooGAjqU/R728Ut0aAaI/AAAAAAAAAAU/6sD6lVTN4ww/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-6915419613733334819</id><published>2008-02-21T06:47:00.000-08:00</published><updated>2008-02-21T07:03:40.825-08:00</updated><title type='text'>Открылся наш сайт</title><content type='html'>Открылся сайт нашей комманды &lt;a href="http://anjlab.com"&gt;AnjLab&lt;/a&gt;. На нем находится блог, который собирается из наших блогов. Очень удобно.&lt;br /&gt; Но самое главное, что это означает, что блог необходимо пополнять. То есть нужно перестать лениться и любые наши находки открывать общественности.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-6915419613733334819?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/6915419613733334819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=6915419613733334819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/6915419613733334819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/6915419613733334819'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2008/02/blog-post.html' title='Открылся наш сайт'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-8134795455046040117</id><published>2007-11-24T05:12:00.000-08:00</published><updated>2007-11-24T05:18:06.354-08:00</updated><title type='text'>Use custom classes in Application Settings</title><content type='html'>You can use custom classes in settings of .NET application. Your class must be marked as Serializable and it must implement TypeConverter to convert string from settings designer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-8134795455046040117?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/8134795455046040117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=8134795455046040117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8134795455046040117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/8134795455046040117'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2007/11/use-custom-classes-in-application.html' title='Use custom classes in Application Settings'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-4813557983937152436</id><published>2007-10-18T01:27:00.000-07:00</published><updated>2007-10-18T01:46:13.443-07:00</updated><title type='text'>Bind a list of objects to GridView</title><content type='html'>How to bind a list of object to a GridView? I do it using own DataSourceControl - ListDataSourceControl. You can use properties of nested classes. &lt;br /&gt;&lt;br /&gt;Here is the code:&lt;br /&gt;&lt;!--&lt;br /&gt;{\rtf1\ansi\ansicpg\lang1024\noproof1251\uc1 \deff0{\fonttbl{\f0\fnil\fcharset204\fprq1 Courier New;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0??;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;??\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;??\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;??\red192\green192\blue192;}??\fs20 \cf2 &amp;lt;\cf13 ListDataSourceControl\cf0  \cf6 runat\cf2 ="server"\cf0  \cf6 id\cf2 ="ListDataSourceControl1"&amp;gt;\par ??\cf0                 \cf2 &amp;lt;\cf13 DataTableConfig\cf2 &amp;gt;\par ??\cf0                     \cf2 &amp;lt;\cf13 Columns\cf2 &amp;gt;\par ??\cf0                         \cf2 &amp;lt;\cf13 PropertyColumnElement\cf0  \cf6 ColumnName\cf2 ="CustomerId"\cf0  \cf6 PropertyName\cf2 ="Id"\cf0  \cf2 /&amp;gt;\par ??\cf0                         \cf2 &amp;lt;\cf13 PropertyColumnElement\cf0  \cf6 ColumnName\cf2 ="CustomerNumber"\cf0  \cf6 PropertyName\cf2 ="Number"\cf0  \cf2 /&amp;gt;\par ??\cf0                         \cf2 &amp;lt;\cf13 PropertyColumnElement\cf0  \cf6 ColumnName\cf2 ="CustomerNominal"\cf0  \cf6 PropertyName\cf2 ="Data.Nominal"\cf0  \cf2 /&amp;gt;\par ??\cf0                     \cf2 &amp;lt;/\cf13 Columns\cf2 &amp;gt;\par ??\cf0                 \cf2 &amp;lt;/\cf13 DataTableConfig\cf2 &amp;gt;\par ??\cf0                 \cf2 &amp;lt;\cf13 SelectParameters\cf2 &amp;gt;\par ??\cf0                     \cf2 &amp;lt;\cf13 asp\cf2 :\cf13 ControlParameter\cf0  \cf6 ControlID\cf2 ="numberFilter"\cf0  \cf6 Name\cf2 ="CustomerNumber"\cf0  \cf6 PropertyName\cf2 ="Value"\cf0  \cf2 /&amp;gt;\par ??\cf0                 \cf2 &amp;lt;/\cf13 SelectParameters\cf2 &amp;gt;\par ??\cf0             \cf2 &amp;lt;/\cf13 ListDataSourceControl\cf2 &amp;gt;\par ??\cf0             \par ??            \cf2 &amp;lt;\cf13 asp\cf2 :\cf13 GridView\cf0  \cf6 runat\cf2 ="server"\cf0  \cf6 ID\cf2 ="grid"\cf0  \cf6 DataSourceID\cf2 ="ListDataSourceControl1"&amp;gt;\par ??\cf0                 \cf2 &amp;lt;\cf13 Columns\cf2 &amp;gt;\par ??\cf0                     \cf2 &amp;lt;\cf13 asp\cf2 :\cf13 BoundField\cf0  \cf6 DataField\cf2 ="CustomerId"\cf0  \cf2 /&amp;gt;\par ??\cf0                     \cf2 &amp;lt;\cf13 asp\cf2 :\cf13 BoundField\cf0  \cf6 DataField\cf2 ="CustomerNumber"\cf0  \cf2 /&amp;gt;\par ??\cf0                     \cf2 &amp;lt;\cf13 asp\cf2 :\cf13 BoundField\cf0  \cf6 DataField\cf2 ="CustomerNominal"\cf0  \cf2 /&amp;gt;\par ??\cf0                 \cf2 &amp;lt;/\cf13 Columns\cf2 &amp;gt;\par ??\cf0             \cf2 &amp;lt;/\cf13 asp\cf2 :\cf13 GridView\cf2 &amp;gt;}&lt;br /&gt;--&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;ListDataSourceControl&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt; &lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="ListDataSourceControl1"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;DataTableConfig&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Columns&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;PropertyColumnElement&lt;/span&gt; &lt;span style="color: red;"&gt;ColumnName&lt;/span&gt;&lt;span style="color: blue;"&gt;="CustomerId"&lt;/span&gt; &lt;span style="color: red;"&gt;PropertyName&lt;/span&gt;&lt;span style="color: blue;"&gt;="Id"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;PropertyColumnElement&lt;/span&gt; &lt;span style="color: red;"&gt;ColumnName&lt;/span&gt;&lt;span style="color: blue;"&gt;="CustomerNumber"&lt;/span&gt; &lt;span style="color: red;"&gt;PropertyName&lt;/span&gt;&lt;span style="color: blue;"&gt;="Number"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;PropertyColumnElement&lt;/span&gt; &lt;span style="color: red;"&gt;ColumnName&lt;/span&gt;&lt;span style="color: blue;"&gt;="CustomerNominal"&lt;/span&gt; &lt;span style="color: red;"&gt;PropertyName&lt;/span&gt;&lt;span style="color: blue;"&gt;="Data.Nominal"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Columns&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;DataTableConfig&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;SelectParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;ControlParameter&lt;/span&gt; &lt;span style="color: red;"&gt;ControlID&lt;/span&gt;&lt;span style="color: blue;"&gt;="numberFilter"&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;="CustomerNumber"&lt;/span&gt; &lt;span style="color: red;"&gt;PropertyName&lt;/span&gt;&lt;span style="color: blue;"&gt;="Value"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;SelectParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;ListDataSourceControl&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;GridView&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="grid"&lt;/span&gt; &lt;span style="color: red;"&gt;DataSourceID&lt;/span&gt;&lt;span style="color: blue;"&gt;="ListDataSourceControl1"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Columns&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;BoundField&lt;/span&gt; &lt;span style="color: red;"&gt;DataField&lt;/span&gt;&lt;span style="color: blue;"&gt;="CustomerId"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;BoundField&lt;/span&gt; &lt;span style="color: red;"&gt;DataField&lt;/span&gt;&lt;span style="color: blue;"&gt;="CustomerNumber"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;BoundField&lt;/span&gt; &lt;span style="color: red;"&gt;DataField&lt;/span&gt;&lt;span style="color: blue;"&gt;="CustomerNominal"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Columns&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;GridView&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can download code from &lt;a href="http://sqlprofiler.googlepages.com/AnjLab.FX.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-4813557983937152436?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/4813557983937152436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=4813557983937152436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/4813557983937152436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/4813557983937152436'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2007/10/bind-list-of-objects-to-gridview.html' title='Bind a list of objects to GridView'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1376361569711944681.post-2779782469483110796</id><published>2007-10-18T00:18:00.000-07:00</published><updated>2007-10-18T01:46:42.223-07:00</updated><title type='text'>Converting an object collection to a DataTable or DataSet</title><content type='html'>I've read the post of Ayende Rahien about &lt;a href="http://www.ayende.com/Blog/archive/2007/05/09/Converting-an-object-collection-to-a-DataSet.aspx"&gt;converting an object collection to a DataSet.&lt;/a&gt;&lt;br /&gt;I have one solution which helps to make the operation of converting. I've wrote DataTableAdapterFactory. It can create converting adapters. I used CodeDom to create adapters compiled code. &lt;br/&gt; You can set the rules of converting using PropertyColumn list. Also you can set as columns the properties of inner classes.&lt;br /&gt;&lt;br /&gt;Here is the client code:&lt;br /&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;{\rtf1\ansi\ansicpg\lang1024\noproof1251\uc1 \deff0{\fonttbl{\f0\fnil\fcharset204\fprq1 Courier New;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0??;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;??\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;??\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;??\red192\green192\blue192;}??\fs20 \cf2 public\cf0  \cf2 class\cf0  \cf10 TestClass1\par ??\cf0         \{\par ??            \cf2 public\cf0  \cf2 int\cf0 ? Field;\par ??            \cf2 private\cf0  \cf2 string\cf0  property;\par ??\par ??            \cf2 public\cf0  TestClass1(\cf2 int\cf0  field, \cf2 string\cf0  property)\par ??            \{\par ??                \cf2 this\cf0 .Field = field;\par ??                \cf2 this\cf0 .property = property;\par ??            \}\par ??\par ??            \cf2 public\cf0  \cf2 string\cf0  Property\par ??            \{\par ??                \cf2 get\cf0  \{ \cf2 return\cf0  property; \}\par ??            \}\par ??        \}}&lt;br /&gt;--&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass1&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;? Field;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; property;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; TestClass1(&lt;span style="color: blue;"&gt;int&lt;/span&gt; field, &lt;span style="color: blue;"&gt;string&lt;/span&gt; property)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;this&lt;/span&gt;.Field = field;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;this&lt;/span&gt;.property = property;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Property&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; property; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;{\rtf1\ansi\ansicpg\lang1024\noproof1251\uc1 \deff0{\fonttbl{\f0\fnil\fcharset204\fprq1 Courier New;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0??;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;??\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;??\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;??\red192\green192\blue192;}??\fs20 \cf2 public\cf0  \cf2 class\cf0  \cf10 TestClass2\par ??\cf0         \{\par ??            \cf2 private\cf0  \cf10 TestClass1\cf0  class1;\par ??            \cf2 public\cf0  \cf10 DateTime\cf0  Time;\par ??\par ??            \cf2 public\cf0  TestClass2()\par ??            \{\par ??                \par ??            \}\par ??\par ??            \cf2 public\cf0  TestClass2(\cf10 TestClass1\cf0  class1)\par ??            \{\par ??                \cf2 this\cf0 .class1 = class1;\par ??            \}\par ??\par ??            \cf2 public\cf0  \cf10 TestClass1\cf0  Class1\par ??            \{\par ??                \cf2 get\cf0  \{ \cf2 return\cf0  class1; \}\par ??            \}\par ??        \}}&lt;br /&gt;--&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass1&lt;/span&gt; class1;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: teal;"&gt;DateTime&lt;/span&gt; Time;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; TestClass2()&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; TestClass2(&lt;span style="color: teal;"&gt;TestClass1&lt;/span&gt; class1)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;this&lt;/span&gt;.class1 = class1;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass1&lt;/span&gt; Class1&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; class1; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;{\rtf1\ansi\ansicpg\lang1024\noproof1251\uc1 \deff0{\fonttbl{\f0\fnil\fcharset204\fprq1 Courier New;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0??;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;??\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;??\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;??\red192\green192\blue192;}??\fs20 \cf2 public\cf0  \cf2 void\cf0  TestCreateAdapter()\par ??        \{\par ??            \cf10 DataTableAdapterFactory\cf0  factory = \cf2 new\cf0  \cf10 DataTableAdapterFactory\cf0 ();\par ??            \cf10 PropertyColumn\cf0 [] columns = \cf2 new\cf0  \cf10 PropertyColumn\cf0 []\par ??                \{\par ??                    \cf2 new\cf0  \cf10 PropertyColumn\cf0 (\cf13 "Class1.Field"\cf0 , \cf13 "Field"\cf0 ),\par ??                    \cf2 new\cf0  \cf10 PropertyColumn\cf0 (\cf13 "Class1.Property"\cf0 , \cf13 "Property"\cf0 ),\par ??                    \cf2 new\cf0  \cf10 PropertyColumn\cf0 (\cf13 "Time"\cf0 , \cf13 "Time"\cf0 )\par ??                \};\par ??\par ??            \cf10 IDataTableAdapter\cf0 &amp;lt;\cf10 TestClass2\cf0 &amp;gt; adapter = factory.New&amp;lt;\cf10 TestClass2\cf0 &amp;gt;(columns);\par ??\par ??            \cf10 List\cf0 &amp;lt;\cf10 TestClass2\cf0 &amp;gt; list = \cf2 new\cf0  \cf10 List\cf0 &amp;lt;\cf10 TestClass2\cf0 &amp;gt;();\par ??            \cf2 for\cf0  (\cf2 int\cf0  i = 0; i &amp;lt; 10000; i++)\par ??            \{\par ??                list.Add(\cf2 new\cf0  \cf10 TestClass2\cf0 (\cf2 new\cf0  \cf10 TestClass1\cf0 (4, \cf13 "4"\cf0 )));\par ??                list.Add(\cf2 new\cf0  \cf10 TestClass2\cf0 (\cf2 new\cf0  \cf10 TestClass1\cf0 (40, \cf13 "40"\cf0 )));\par ??                list.Add(\cf2 new\cf0  \cf10 TestClass2\cf0 (\cf2 new\cf0  \cf10 TestClass1\cf0 (12, \cf13 "12"\cf0 )));\par ??                list.Add(\cf2 new\cf0  \cf10 TestClass2\cf0 ());\par ??            \}\par ??\par ??            \cf10 DataTable\cf0  dt = adapter.Get(list);\par ??        \}}&lt;br /&gt;--&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; TestCreateAdapter()&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;DataTableAdapterFactory&lt;/span&gt; factory = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;DataTableAdapterFactory&lt;/span&gt;();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;PropertyColumn&lt;/span&gt;[] columns = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;PropertyColumn&lt;/span&gt;[]&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;PropertyColumn&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Class1.Field"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Field"&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;PropertyColumn&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Class1.Property"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Property"&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;PropertyColumn&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Time"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Time"&lt;/span&gt;)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;IDataTableAdapter&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;&amp;gt; adapter = factory.New&amp;lt;&lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;&amp;gt;(columns);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;&amp;gt; list = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;&amp;gt;();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 10000; i++)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; list.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass1&lt;/span&gt;(4, &lt;span style="color: maroon;"&gt;"4"&lt;/span&gt;)));&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; list.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass1&lt;/span&gt;(40, &lt;span style="color: maroon;"&gt;"40"&lt;/span&gt;)));&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; list.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass1&lt;/span&gt;(12, &lt;span style="color: maroon;"&gt;"12"&lt;/span&gt;)));&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; list.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;TestClass2&lt;/span&gt;());&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;DataTable&lt;/span&gt; dt = adapter.Get(list);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I've quickly created the small project. You can download the source code of DataTableAdapterFactory from &lt;a href="http://sqlprofiler.googlepages.com/AnjLab.FX.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1376361569711944681-2779782469483110796?l=zhebrun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhebrun.blogspot.com/feeds/2779782469483110796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1376361569711944681&amp;postID=2779782469483110796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2779782469483110796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1376361569711944681/posts/default/2779782469483110796'/><link rel='alternate' type='text/html' href='http://zhebrun.blogspot.com/2007/10/converting-object-collection-to.html' title='Converting an object collection to a DataTable or DataSet'/><author><name>Nick Zhebrun</name><uri>http://www.blogger.com/profile/03272019793715939592</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
