<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.windowsclient.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WPF Practicals!!</title><link>http://blogs.windowsclient.net/anshulee/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20423.869)</generator><item><title>(WPF ListView/ TreeView)Get rid of that default (blue) selection colour!!</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/05/31/wpf-listview-treeview-get-rid-of-that-default-blue-selection-colour.aspx</link><pubDate>Sat, 31 May 2008 06:18:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:30367</guid><dc:creator>Anshulee</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=30367</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/05/31/wpf-listview-treeview-get-rid-of-that-default-blue-selection-colour.aspx#comments</comments><description>As promised this next blog covers a very trivial but important problem. important because i think almost everyone would want to override this default behaviour of WPF and trivial because the solution is actually pretty simple.Atleast its simple now that...(&lt;a href="http://blogs.windowsclient.net/anshulee/archive/2008/05/31/wpf-listview-treeview-get-rid-of-that-default-blue-selection-colour.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=30367" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/ListView/default.aspx">ListView</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/TreeView/default.aspx">TreeView</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Default+Selection+Colour/default.aspx">Default Selection Colour</category></item><item><title>Removing the Dotted border around selected WPF UI element</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/05/16/removing-the-dotted-border-around-selected-wpf-ui-element.aspx</link><pubDate>Fri, 16 May 2008 03:29:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:28173</guid><dc:creator>Anshulee</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=28173</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/05/16/removing-the-dotted-border-around-selected-wpf-ui-element.aspx#comments</comments><description>The WPF app i have been working on looks great but there was a small visual irritant which i wasn&amp;#39;t being able to get rid of. Everytime i clicked on a UI element..especially a ListViewItem, treeViewitem it would have this default selected look i.e...(&lt;a href="http://blogs.windowsclient.net/anshulee/archive/2008/05/16/removing-the-dotted-border-around-selected-wpf-ui-element.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=28173" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Dotted+Border/default.aspx">Dotted Border</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/FocusVisualStyle/default.aspx">FocusVisualStyle</category></item><item><title>Exploring the OBA Composition Reference Toolkit (OCRT) !!</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/05/11/exploring-the-oba-composition-reference-toolkit.aspx</link><pubDate>Sun, 11 May 2008 15:04:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:27403</guid><dc:creator>Anshulee</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=27403</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/05/11/exploring-the-oba-composition-reference-toolkit.aspx#comments</comments><description>Microsoft Recently announced version 2 of the OBA Composition Reference Toolkit . Microsoft has released a pretty intensive framework.Looks like the beginning of something big!! Version 1 had been announced at the Office Developers Conference in San Hose...(&lt;a href="http://blogs.windowsclient.net/anshulee/archive/2008/05/11/exploring-the-oba-composition-reference-toolkit.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=27403" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/OBA+Composition+Reference+Toolkit/default.aspx">OBA Composition Reference Toolkit</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Composer/default.aspx">Composer</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/OCRT/default.aspx">OCRT</category></item><item><title>(WPF)Figure out dynamically if the ListView ScrollViewer is showing!!</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/03/26/wpf-figure-out-dynamically-if-the-listview-scrollviewer-is-showing.aspx</link><pubDate>Wed, 26 Mar 2008 07:42:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:19195</guid><dc:creator>Anshulee</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=19195</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/03/26/wpf-figure-out-dynamically-if-the-listview-scrollviewer-is-showing.aspx#comments</comments><description>I recently faced a situation where i had a databound ListView with a ItemTemplate consisting of a text block.The ListView is of a predefined height and width and the TextBlock is textwrapped and set to the same width as the ListView.. Everything worked...(&lt;a href="http://blogs.windowsclient.net/anshulee/archive/2008/03/26/wpf-figure-out-dynamically-if-the-listview-scrollviewer-is-showing.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=19195" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/ScrollViewer/default.aspx">ScrollViewer</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/ListView/default.aspx">ListView</category></item><item><title>Multiple Level Master Detail Binding in WPF(XAML)</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/03/12/multiple-level-master-detail-binding-with-xml.aspx</link><pubDate>Wed, 12 Mar 2008 15:31:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:17535</guid><dc:creator>Anshulee</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=17535</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/03/12/multiple-level-master-detail-binding-with-xml.aspx#comments</comments><description>I’ve seen a couple of developers fumble with a LOT of Code when asked to implement a 2-3 level Master –detail form. So I put together a bit of code to showcase how easily it can be done with virtually no code (alteast no code behind!!) in WPF Consider...(&lt;a href="http://blogs.windowsclient.net/anshulee/archive/2008/03/12/multiple-level-master-detail-binding-with-xml.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=17535" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/IsSynchronizedWithCurrentItem/default.aspx">IsSynchronizedWithCurrentItem</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Multiple+level/default.aspx">Multiple level</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Master+Detail/default.aspx">Master Detail</category></item><item><title>The One Stop Shop for Mix 08 related downloads</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/03/07/the-one-stop-shop-for-mix-08-related-downloads.aspx</link><pubDate>Fri, 07 Mar 2008 07:54:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:16908</guid><dc:creator>Anshulee</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=16908</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/03/07/the-one-stop-shop-for-mix-08-related-downloads.aspx#comments</comments><description>I was going berserk trying to keep a tab of WHAT ALL has been advertised on Mix, before i hit this site Thanks to Sarah Perez for collating everything and sharing with us!! So Sarah&amp;#39;s blog along with http://sessions.visitmix.com/ should keep you busy...(&lt;a href="http://blogs.windowsclient.net/anshulee/archive/2008/03/07/the-one-stop-shop-for-mix-08-related-downloads.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=16908" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Mix+2008/default.aspx">Mix 2008</category></item><item><title>Mix 2008 Sessions- Already available</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/03/07/mix-2008-sessions-already-available.aspx</link><pubDate>Fri, 07 Mar 2008 07:38:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:16907</guid><dc:creator>Anshulee</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=16907</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/03/07/mix-2008-sessions-already-available.aspx#comments</comments><description>There is still hope for us &amp;quot;unfortunate&amp;quot; ones who cannot attend the Mix 08 sessions live!! Get updated with the latest presentations uploaded at http://sessions.visitmix.com/ I love the presentation of this site! Happy Viewing!! Anshulee...(&lt;a href="http://blogs.windowsclient.net/anshulee/archive/2008/03/07/mix-2008-sessions-already-available.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=16907" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Mix+2008/default.aspx">Mix 2008</category></item><item><title>Structured Navigation Using Page Functions!</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/03/03/structured-navigation-using-page-functions.aspx</link><pubDate>Mon, 03 Mar 2008 13:42:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:16325</guid><dc:creator>Anshulee</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=16325</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/03/03/structured-navigation-using-page-functions.aspx#comments</comments><description>&lt;p&gt;One of the new features WPF has given us windows programmers is the &amp;quot;Page&amp;quot; as the supposed equivalent of the html web page..information can now flow from one page to another as in a website by linking one page to another via a hyperlink .This gives users the&amp;nbsp; familiar&amp;nbsp;web experience(and looks much better than windows popping up with every click!!)..&lt;/p&gt;
&lt;p&gt;Along with pages, WPF also introduces a concept known as Page Functions..but before i go there, lets examine WHY we need them!&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:0.25in;"&gt;Hyperlink driven navigation in pages has the following &lt;b style="mso-bidi-font-weight:normal;"&gt;drawbacks&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.9in;TEXT-INDENT:-0.15in;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list .9in;" align="left"&gt;&lt;span style="mso-fareast-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;a)&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It is difficult to pass information between the host page and the calling page&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.9in;TEXT-INDENT:-0.15in;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list .9in;" align="left"&gt;&lt;span style="mso-fareast-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;b)&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;In case the host page called a task page to do some work , its difficult for the host page to know if the work was actually completed or not&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.9in;TEXT-INDENT:-0.15in;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list .9in;" align="left"&gt;&lt;span style="mso-fareast-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;c)&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;In some cases it is desired that the user should NOT be able to navigate back to the task page. For example once he has submitted the information he shouldn’t be allowed to go back using the Navigation service and change it. This is very difficult to achieve&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.5in;"&gt;The first 2 points above i.e. a and b can be achieved in the traditional page + hyperlink combination using Application scope properties to pass information between them, though not in a very structured manner. However it is very difficult to remove the task page reference from the history.&lt;/p&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.5in;"&gt;WPF has solved these issues by creating &lt;strong&gt;&lt;em&gt;&lt;u&gt;Page Functions.&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.5in;"&gt;Essentially, page functions enable a style of navigation &lt;b style="mso-bidi-font-weight:normal;"&gt;that is analogous to functions in procedural languages&lt;/b&gt;, which typically involves the following:&lt;/p&gt;
&lt;ol style="MARGIN-TOP:0in;"&gt;
&lt;ul style="MARGIN-TOP:0in;"&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 0pt;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;"&gt;Calling a function.&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 0pt;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;"&gt;Passing parameters to the function.&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 0pt;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;"&gt;Performing processing from the function.&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 0pt;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;"&gt;Calling other functions from the function.&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 0pt;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;"&gt;Return results from the function to the calling code.&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 0pt;TEXT-ALIGN:left;mso-list:l0 level2 lfo1;tab-stops:list 1.0in;"&gt;Cleaning up.&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;Given below is the definition of a Page Function. To create a Page function you simple do a AddNewItem&lt;span style="FONT-FAMILY:Wingdings;mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;à&lt;/span&gt;&lt;/span&gt;Page Function into your solution.&lt;/p&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;PageFunction.xaml&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&amp;lt;PageFunction&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;xmlns=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;xmlns:sys=&amp;quot;clr-namespace:System;assembly=mscorlib&amp;quot; &lt;/b&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;x:Class=&amp;quot;CSharp.TaskPageFunction&amp;quot;&lt;/p&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;x:TypeArguments=&amp;quot;sys:String&amp;quot;&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Title=&amp;quot;Task Page Function&amp;quot; WindowWidth=&amp;quot;250&amp;quot; WindowHeight=&amp;quot;150&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;Grid Margin=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/Grid&amp;gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&amp;lt;/PageFunction&amp;gt;&lt;/p&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;PageFunction.xaml.cs&lt;/p&gt;public partial class TaskPageFunction : &lt;b style="mso-bidi-font-weight:normal;"&gt;PageFunction&amp;lt;String&amp;gt;&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;{&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public TaskPageFunction()&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;InitializeComponent();&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;}&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;The declaration is pretty much similar to a page. However Page Function is a &lt;b style="mso-bidi-font-weight:normal;"&gt;generic class and needs a declaration of the Type of the value it will return&lt;/b&gt;.This is set in the &lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;x:TypeArguments=&amp;quot;sys:String&amp;quot; &lt;/b&gt;in the xaml configuration and correspondingly as &lt;b style="mso-bidi-font-weight:normal;"&gt;&amp;lt;String&amp;gt; &lt;/b&gt;in the Page.xaml.cs file&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;You can create your own custom types and use your page function to return custom information (If you are interested leave me a comment and i can upload an example!).&lt;/p&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;Now that we know the concept of Page Function and how to define it. We’ll see how to create, call, pass values and get the results from a page function&lt;/p&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Creation and calling and passing value&lt;/b&gt;: It is same as creating an instance of a Page and navigation to it &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;Say &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;span style="COLOR:#3366ff;"&gt;TaskPageFunction taskPageFunction = new TaskPageFunction()//&lt;/span&gt;Call an overloaded constructor if you want to pass information to it,&lt;/p&gt;&lt;span style="COLOR:#3366ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;this.NavigationService.Navigate(taskPageFunction);&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;Getting return value from the task page&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;In order to pass values back to the Calling page, Task page calls a method called &lt;b style="mso-bidi-font-weight:normal;"&gt;OnReturn().&lt;/b&gt; OnReturn is a protected virtual method which will be called with an instance of &lt;b style="mso-bidi-font-weight:normal;"&gt;Generic ReturnEventArgs&lt;/b&gt; of the type same as the Type arguments you had specified for the page function.&lt;/p&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;So whatever data you want to return will be sent to the OnReturn() function.&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;For example in the Page function definition we created above, on clicking a submit button you want to pass the text entered by the user into a textbox called “NameTextBox” the code will be as under&lt;/p&gt;&amp;nbsp;&lt;span style="COLOR:#3366ff;"&gt;Public void SubmitClicked(sender object, RoutedEventAgrs args)&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;{&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;OnReturn(new ReturnEventArgs&amp;lt;string&amp;gt;(this. NameTextBox.Text));&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;}&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;The OnReturn() method in turn fires the &lt;b style="mso-bidi-font-weight:normal;"&gt;Return event&lt;/b&gt; of the task page which the calling class has to hook onto. &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;&lt;strong&gt;To summarize&lt;/strong&gt; the following 3 parts of the code are needed to complete the navigation&lt;/p&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;//create the page function, hook onto its Return event and navigate to it&lt;/p&gt;&lt;span style="COLOR:#3366ff;"&gt;TaskPageFunction taskPageFunction = new TaskPageFunction()&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="COLOR:#3366ff;"&gt;taskPageFunction.Return += taskPageFunction_Return;&lt;/span&gt;&lt;/b&gt;&lt;span style="COLOR:#3366ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;this.NavigationService.Navigate(taskPageFunction);&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;// the Page function will call ONReturn on completing its task &lt;/p&gt;&lt;span style="COLOR:#3366ff;"&gt;OnReturn(new ReturnEventArgs&amp;lt;string&amp;gt;(this. NameTextBox.Text));&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;The Calling page method delegated to receive the event will get called and will extract the information from the event args passed to it&lt;/p&gt;&amp;nbsp;&lt;span style="COLOR:#3366ff;"&gt;void taskPageFunction_Return(object sender, &lt;b style="mso-bidi-font-weight:normal;"&gt;ReturnEventArgs&amp;lt;string&amp;gt;&lt;/b&gt; e) &lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;{&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;MessageBox.Show(“Name&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Is “+ e.Result&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;}&lt;/span&gt;&lt;span style="COLOR:#3366ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Removal of Page function ref from the Navigation history&lt;/b&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;"&gt;Every PageFunction /Page has a property called as &lt;b style="mso-bidi-font-weight:normal;"&gt;RemoveFromJournal&lt;/b&gt; .Setting it to true removes it from the navigation history after the page has been navigated away from.&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;By default a Page function has RemoveFromJournal set to true. So it will be removed&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;from history once its OnReturn has been called.&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;"&gt;Oh btw...this form of Navigation is called&lt;strong&gt; Structured Naviga&lt;/strong&gt;tion in WPF Terminology!!&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;"&gt;Enjoy!&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;"&gt;Anshulee&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=16325" width="1" height="1"&gt;</description><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Structured+Navigation/default.aspx">Structured Navigation</category><category domain="http://blogs.windowsclient.net/anshulee/archive/tags/Page+Functions/default.aspx">Page Functions</category></item><item><title>Know me!!</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/03/03/a-little-about-me.aspx</link><pubDate>Mon, 03 Mar 2008 13:17:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:16321</guid><dc:creator>Anshulee</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=16321</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/03/03/a-little-about-me.aspx#comments</comments><description>&lt;p&gt;Oops..i didn&amp;#39;t really introduce myself did i?? Well..here &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Name:-&lt;/em&gt; Anshulee Asthana&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Experience:-&lt;/em&gt; 4.5 years&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Hobbies:-&lt;/em&gt; Playing!!..may be no good at all..but i still enjoying playing...anything ...but it better be outdoors!!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tech Interests&lt;/em&gt;:- Anything to do with Windows Programming!!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;What am i doing here??:-&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt; Well i am here to show off a little and to learn a lot from you!!&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=16321" width="1" height="1"&gt;</description></item><item><title>Silverlight blueprint for Sharepoint!!</title><link>http://blogs.windowsclient.net/anshulee/archive/2008/03/03/silverlight-blueprint-for-sharepoint.aspx</link><pubDate>Mon, 03 Mar 2008 08:24:00 GMT</pubDate><guid isPermaLink="false">f1c07d22-4184-4df1-9c40-8dd04b52e796:16292</guid><dc:creator>Anshulee</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.windowsclient.net/anshulee/rsscomments.aspx?PostID=16292</wfw:commentRss><comments>http://blogs.windowsclient.net/anshulee/archive/2008/03/03/silverlight-blueprint-for-sharepoint.aspx#comments</comments><description>&lt;p&gt;Looks like Microsoft really does believe in creating an integration between all of its technologies and frameworks.&lt;/p&gt;
&lt;p&gt;The latest announcement at the Sharepoint conference at&amp;nbsp;Seattle speaks of a Silverlight Blueprint for SharePoint .. This will allow SharePoint Developers building web parts to take advantage of Silverlight user interface components. &lt;/p&gt;
&lt;p&gt;Check it out!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/sharepoint/cc303301.aspx"&gt;http://msdn2.microsoft.com/en-us/sharepoint/cc303301.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;--Anshulee&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.windowsclient.net/aggbug.aspx?PostID=16292" width="1" height="1"&gt;</description></item></channel></rss>