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

<channel>
	<title>Intersoft Solutions Corporate Blog &#187; 2016 R1</title>
	<atom:link href="http://blog.intersoftsolutions.com/category/2016-r1/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intersoftsolutions.com</link>
	<description>All about development productivity – ASP.NET, Silverlight, WPF, iOS, Android, Windows Phone, Windows 8</description>
	<lastBuildDate>Sat, 21 Apr 2018 06:57:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.33</generator>
	<item>
		<title>Great News for Crosslight Developers!</title>
		<link>http://blog.intersoftsolutions.com/2016/04/great-news-for-crosslight-developers/</link>
		<comments>http://blog.intersoftsolutions.com/2016/04/great-news-for-crosslight-developers/#comments</comments>
		<pubDate>Mon, 11 Apr 2016 08:58:15 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=8001</guid>
		<description><![CDATA[In light of Microsoft&#8217;s Build Event 2016 last week, Microsoft has officially announced partnership with Xamarin on March 2016, making Xamarin accessible to even more mobile developers across the world. What&#8217;s great about this partnership is that Xamarin&#8217;s price has been significantly reduced from $1000/developer/platform/year to [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/vs-xamarin-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="vs+xamarin" style="float:right; margin:0 0 10px 10px;" /><p>In light of <a href="https://build.microsoft.com" target="_blank">Microsoft&#8217;s Build Event 2016</a> last week, Microsoft has officially announced partnership with Xamarin on <a href="https://blog.xamarin.com/xamarin-for-all" target="_blank">March 2016</a>, making Xamarin accessible to even more mobile developers across the world.</p>
<p><img class="aligncenter size-full wp-image-8027" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/vs-xamarin.png" alt="vs+xamarin.png" width="1308" height="609" /></p>
<p>What&#8217;s great about this partnership is that Xamarin&#8217;s price has been significantly reduced from $1000/developer/platform/year to absolutely <strong>FREE</strong>. This is a huge news for us and it effectively reduces Crosslight&#8217;s subscription price to a total of <strong>$999</strong>, from $2,999 (including Xamarin). A whopping <strong>66.66%</strong> reduction in total cost.</p>
<p>Our years of investing in Xamarin technologies have finally paid off and now you can easily build mobile apps with even faster than ever, thanks to Crosslight. Built on top of Xamarin&#8217;s technologies, Crosslight bridges the gaps between Xamarin.iOS and Xamarin.Android, effectively allowing 100% business logic code sharing with strong MVVM patterns.</p>
<p><img class="alignnone size-full wp-image-8038" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/crosslight-architecture.png" alt="crosslight-architecture.png" width="1200" height="988" /></p>
<p class="p1"><span class="s1">Leveraging extensible architecture, MVVM design pattern and integration with Xamarin Platforms, Crosslight lets you easily build powerful iOS, Android and Windows native apps with a common application codebase including domain model, data access, and user interaction logic. And that&#8217;s nearly 96% of your project&#8217;s codebase. Built with cutting-edge portable framework and MVVM pattern, Crosslight lets you build cross-platform mobile apps by leveraging the programming skills and tools you loved – such as C#, MVVM, .NET and Visual Studio. Key features include:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Comprehensive and advanced mobile frameworks leveraging MVVM design pattern</span></li>
<li class="li1"><span class="s1">Build native iOS, Android, Windows Phone 8 and Windows 8 apps with a single application codebase</span></li>
<li class="li1"><span class="s1">Elegant, developer-friendly API based on platform standards</span></li>
<li class="li1"><span class="s1">Universal data management with automatic binding</span></li>
<li class="li1"><span class="s1">Streamlined navigation services supporting push, modal and nested navigation mode</span></li>
<li class="li1"><span class="s1">Rich form builder with 20+ pre-built editors</span></li>
<li class="li1"><span class="s1">Highly customizable editor controls ranging from auto resize textbox to image picker with camera support and more</span></li>
<li class="li1"><span class="s1">Comprehensive mobile services for business apps</span></li>
<li class="li1"><span class="s1">Native user experiences conforming to platform design guidelines</span></li>
<li class="li1"><span class="s1">Support Visual Studio 2012 and Xamarin Studio</span></li>
<li class="li1"><span class="s1">Integrated to Xamarin platforms with full AOT compliance</span></li>
<li class="li1"><span class="s1">Time-saving Project Wizard featuring 30+ templates variants supporting iOS, Android, Windows Phone 8 and Windows 8</span></li>
</ul>
<h3 class="p1"><span class="s1">Sample Code</span></h3>
<p class="p2">Display a button, then when clicked, show the number of taps. This is the default Xamarin&#8217;s cross-platform, single-view template.</p>
<h3 class="p2">Xamarin.iOS Code</h3>
<p>With Xamarin.iOS, the code is more event-based, handled in the ViewController level.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> UIKit</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinCrossPlatform</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewController</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">1</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><span style="color: #333333;">        </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ViewDidLoad</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewDidLoad</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Perform</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">any</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">additional</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">setup</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">after</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">loading</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">view</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">typically</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">a</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">nib</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">Button</span><span style="color: #333333;">.</span><span style="color: #333333;">AccessibilityIdentifier</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">myButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">Button</span><span style="color: #333333;">.</span><span style="color: #333333;">TouchUpInside</span><span style="color: #333333;"> </span><span style="color: #333333;">+=</span><span style="color: #333333;"> </span><span style="color: #009695;">delegate</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">title</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Format</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #ff0000;">{</span><span style="color: #ff0000;">0</span><span style="color: #ff0000;">}</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">clicks</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;">++</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">Button</span><span style="color: #333333;">.</span><span style="color: #333333;">SetTitle</span><span style="color: #333333;">(</span><span style="color: #333333;">title</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIControlState</span><span style="color: #333333;">.</span><span style="color: #333333;">Normal</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">DidReceiveMemoryWarning</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><span style="color: #333333;">        </span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">DidReceiveMemoryWarning</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><span style="color: #333333;">        </span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Release</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">any</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cached</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">data</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">images</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">etc</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">that</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">aren</span><span style="font-style: italic; color: #888888;">&#8216;</span><span style="font-style: italic; color: #888888;">t</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">in</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">use</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">    </span><span style="font-style: italic; color: #888888;">    </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span><br />
</span></p>
<p>And on Android,</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">App</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Widget</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">OS</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinCrossPlatform</span><span style="color: #333333;">.</span><span style="color: #333333;">Droid</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Activity</span><span style="color: #333333;">(</span><span style="color: #333333;">Label </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">XamarinCrossPlatform</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> MainLauncher </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><span style="color: #333333;"> Icon </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@mipmap</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">icon</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">MainActivity</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Activity</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">1</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">OnCreate</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Bundle</span><span style="color: #333333;"> </span><span style="color: #333333;">savedInstanceState</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">OnCreate</span><span style="color: #333333;">(</span><span style="color: #333333;">savedInstanceState</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Set</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">our</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">view</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">main</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">layout</span><span style="font-style: italic; color: #888888;"> resource</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">SetContentView</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Layout</span><span style="color: #333333;">.</span><span style="color: #333333;">Main</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Get</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">our</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">button</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">layout</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">resource</span><span style="font-style: italic; color: #888888;">,</span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">and</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">attach</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">an</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">event</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> it</span><br />
<span style="color: #333333;">            </span><span style="color: #3364a4;">Button</span><span style="color: #333333;"> </span><span style="color: #333333;">button</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">FindViewById</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Button</span><span style="color: #333333;">&gt;(</span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Id</span><span style="color: #333333;">.</span><span style="color: #333333;">myButton</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">button</span><span style="color: #333333;">.</span><span style="color: #333333;">Click</span><span style="color: #333333;"> </span><span style="color: #333333;">+=</span><span style="color: #333333;"> </span><span style="color: #009695;">delegate</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">button</span><span style="color: #333333;">.</span><span style="color: #333333;">Text</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Format</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #ff0000;">{</span><span style="color: #ff0000;">0</span><span style="color: #ff0000;">}</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">clicks</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;">++</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span><br />
</span></p>
<p>Which may lead to problems if you&#8217;re trying to centralize the business logic. Let&#8217;s compare this with Crosslight. With Crosslight, simply create a new ViewModel that will contain the centralized business logic, which will be bound to the View using BindingProvider. Here&#8217;s the ViewModel.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Input</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewModelBase</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ButtonText</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Hello</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">World</span><span style="color: #f57d00;">,</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Click</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Me</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">0</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ClickCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;">(</span><span style="color: #333333;">ExecuteClick</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Title</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">XamarinToCrosslight</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_buttonText</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">_count</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">ButtonText</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_buttonText</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_buttonText</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">_buttonText</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ButtonText</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">Count</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_count</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_count</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">_count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Count</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">ClickCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">get</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #009695;">set</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteClick</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ButtonText</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">++</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Count</span><span style="color: #333333;"> </span><span style="color: #333333;">+</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">clicks</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><span style="color: #333333;">  </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>And here&#8217;s the BindingProvider.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleBindingProvider</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindingProvider</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleBindingProvider</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">myButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">TextProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ButtonText</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">myButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ClickCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>Then, in iOS,</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> UIKit</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Storyboard</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Main</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">SimpleBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewController</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><span style="color: #333333;">       </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span><br />
</span></p>
<p>And in Android,</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">App</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Widget</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">OS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Droid</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Activity</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">MainActivity</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppCompatActivity</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>As you can see, the View-level code is very minimal, since the code is very much centralized in the ViewModel and glued to the View using MVVM data binding pattern, which makes it very efficient to develop and maintain enterprise-scale apps. Should you wish to check out the full scource code, find it <a href="http://git.intersoftsolutions.com/projects/CT/repos/xamarintocrosslight/browse" target="_blank">here</a>.</p>
<p class="p2">
<p>To learn how to create your first Crosslight app, follow this step-by-step tutorial here: <a href="http://developer.intersoftsolutions.com/display/crosslight/Walkthrough%3A+Creating+Your+First+Crosslight+App" target="_blank">http://developer.intersoftsolutions.com/display/crosslight/Walkthrough%3A+Creating+Your+First+Crosslight+App</a>. Or, if you&#8217;re interested in a more full-fledged app that showcases Crosslight&#8217;s prowess, we&#8217;ve recently released the Crosslight Field Service sample, which was revamped from the Xamarin Field Service sample. I highly recommend you to read these two posts to learn more about the Crosslight Field Service sample: <a href="http://blog.intersoftsolutions.com/2015/11/redesigning-xamarin-field-service-sample-with-crosslight/" target="_blank">part 1</a> and <a href="http://blog.intersoftsolutions.com/2016/04/redesigning-xamarin-field-service-sample-with-crosslight-part-2/" target="_blank">part 2</a>.</p>
<p>Should you ready to purchase Crosslight, simply head over to <a href="http://www.intersoftsolutions.com/Store" target="_blank">our store</a>. To celebrate this occassion, we offer a limited-time offer: You can get Crosslight now for $499 using this coupon code: <strong>LAUNCH2016 </strong>and start developing great mobile apps in no time!</p>
<p>Till next post,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/04/great-news-for-crosslight-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redesigning Xamarin Field Service Sample with Crosslight &#8211; Part 2</title>
		<link>http://blog.intersoftsolutions.com/2016/04/redesigning-xamarin-field-service-sample-with-crosslight-part-2/</link>
		<comments>http://blog.intersoftsolutions.com/2016/04/redesigning-xamarin-field-service-sample-with-crosslight-part-2/#comments</comments>
		<pubDate>Fri, 08 Apr 2016 04:03:36 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Reference Samples]]></category>
		<category><![CDATA[Crosslight 5]]></category>
		<category><![CDATA[Samples]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=7614</guid>
		<description><![CDATA[Back in November 2015 I wrote a blog post on Redesigning Xamarin Field Service Sample &#8211; Part 1. Well, in that post I&#8217;ve discussed various design quirks and what improvements can be made to made the overall Xamarin Field Service sample better. First of all, we&#8217;re glad to receive many [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/assignment-detail1-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="assignment-detail" style="float:right; margin:0 0 10px 10px;" /><p>Back in November 2015 I wrote a blog post on <a href="http://blog.intersoftsolutions.com/2015/11/redesigning-xamarin-field-service-sample-with-crosslight/" target="_blank">Redesigning Xamarin Field Service Sample &#8211; Part 1</a>. Well, in that post I&#8217;ve discussed various design quirks and what improvements can be made to made the overall <a href="https://blog.xamarin.com/the-xamarin-field-service-app-a-cross-platform-starter-kit/" target="_blank">Xamarin Field Service</a> sample better. First of all, we&#8217;re glad to receive many positive responses towards that post and very happy to see many Crosslight developers are taking UI and UX very seriously in designing their cross-platform apps.</p>
<p>Many of you have asked when will the blogpost see the light of day. Well, now it is. We&#8217;re very excited to announce that the sample is now available for you guys to check out and experiment for yourself. It is available here: <a href="http://git.intersoftsolutions.com/projects/CS/repos/app-fieldservice/browse" target="_blank">http://git.intersoftsolutions.com/projects/CS/repos/app-fieldservice/browse</a>. Before I can delve into the technical aspects of this sample, in this second part of the post, I would like to re-highlight what we&#8217;ve promised in the first post and see it in action, in the form of shots and videos, with codes if possible. We tried to retain the business logic as much as we can to adhere to the original sample.</p>
<h1>Better Device Compatibility</h1>
<p>When you try to run the original sample, you won&#8217;t be able to run the sample on phone devices, which is kind of disappointing. But not with Crosslight. You can definitely deploy the sample on phones and tablet devices.</p>
<p><img class="alignnone size-full wp-image-7634" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/device-compatibility.png" alt="device-compatibility.png" width="1790" height="768" /></p>
<p>With this, you can easily target more devices as phone devices are greater in number when compared to tablets. One note: we&#8217;re discarding Windows-based platforms for now due to low market receptivity. Once it has gained more traction amongst cross-platform mobile developers, we&#8217;ll definitely revive the Windows lineup.</p>
<h1>The Login Screen</h1>
<p>First, let&#8217;s take a look at the original sample login screen experience.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/FZr02qsNqHU?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>One thing&#8217;s for sure: I can&#8217;t definitely use this screen on landscape orientation. When I try to focus on the username text box, the login box just flies away from the screen up to the point I can&#8217;t see where the text box is and input my username. You can still use this screen on portrait orientation though. Which is weird. Let&#8217;s take a look at Crosslight&#8217;s login screen.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/qMsxGoHeo4Y?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>No matter how you rotate it, it works consistently on both portrait and landscape orientation, on phones as well.</p>
<p>&nbsp;</p>
<p><img class="alignnone size-full wp-image-7707" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/android-login.png" alt="android-login.png" width="2000" height="716" /></p>
<p>&nbsp;</p>
<h1>The Assignment List Screen</h1>
<p>The assignment screen is pretty much the same, except for a few changes:</p>
<p><img class="alignnone size-full wp-image-7714" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/assignment-list.png" alt="assignment-list.png" width="2000" height="992" /></p>
<ol>
<li>We don&#8217;t feel that the &#8220;sticky&#8221; header feels common in modern mobile apps, therefore we opted for &#8220;grouped&#8221; assignments instead. Sticky headers tend to take too much space, obstructing the user&#8217;s view and may cause confusion. Active assignments are put on the top of the list, followed by Completed assignments and Pending assignments. On iOS, you can easily tap the status bar to get to the topmost part of the TableView (this is the default behavior of the TableView) to see the Active Assignment quickly.</li>
<li>We removed the the button click behavior from the &#8220;assignment status&#8221;. Instead, we opted for swipe gesture, as this is more commonly used in mobile apps. If the assignment is On Hold, you can only see Active and Complete as options (as shown in the shot above). It feels counter-intuitive to have two clickable UI elements inside an assignment. The user might wonder if there&#8217;s any additional UI elements that can be clicked in addition to the &#8220;Play&#8221; button.</li>
<li>Also notice that you can&#8217;t perform the swipe gesture if the assignment isn&#8217;t accepted yet, or is currently the running assignment. The secret lies in the <strong>AssignmentListViewModel.cs</strong> inside <strong>FieldService.Core/ViewModels</strong> folder.<span style="font-family: Menlo;"> <span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> Determines whether the edit command can be executed.</span><br />
<span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">remarks</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> Allow users to perform swipe actions only when:</span><br />
<span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> 1. The item status is Active or Pending</span><br />
<span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> 2. The active assignment is not currently running.</span><br />
<span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">remarks</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">bool</span><span style="color: #333333;"> </span><span style="color: #333333;">CanExecuteEdit</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;"> </span><span style="color: #009695;">is</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditingParameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #3364a4;">EditingParameter</span><span style="color: #333333;"> </span><span style="color: #333333;">editingParameter</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditingParameter</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">editingParameter</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;"> </span><span style="color: #009695;">is</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Assignment</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #3364a4;">Assignment</span><span style="color: #333333;"> </span><span style="color: #333333;">item</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">editingParameter</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Assignment</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">item</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AssignmentViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;"> </span><span style="color: #333333;">&amp;&amp;</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AssignmentViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">IsStarted</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">else</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">item</span><span style="color: #333333;">.</span><span style="color: #333333;">Status</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Active</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> || </span><span style="color: #333333;">item</span><span style="color: #333333;">.</span><span style="color: #333333;">Status</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Pending</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span></span><span style="color: #333333;">    </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></li>
</ol>
<h1>The Assignment Detail Screen</h1>
<p>This is where things get pretty interesting.</p>
<p><img class="alignnone size-full wp-image-7748" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/assignment-detail.png" alt="assignment-detail.png" width="2000" height="649" /></p>
<p>&nbsp;</p>
<p>As promised, on tablets, we&#8217;ve used the new Dialog Presenter that will slide from the right hand side that will cover at least 3/4 of the screen. You can easily dismiss the detail by hitting the back button on Android or tapping on the area outside the dialog. On phones, normal push navigation is used. To use the Dialog Presenter on iPad, at the TabViewController&#8217;s constructor, simply use this code:</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AssignmentDetailTabViewController</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">isPad</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIDevice</span><span style="color: #333333;">.</span><span style="color: #333333;">CurrentDevice</span><span style="color: #333333;">.</span><span style="color: #333333;">UserInterfaceIdiom</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIUserInterfaceIdiom</span><span style="color: #333333;">.</span><span style="color: #333333;">Pad</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ConfigurePresenter</span><span style="color: #333333;">(</span><span style="color: #333333;">o</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">PreferredContentSize</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CGSize</span><span style="color: #333333;">(</span><span style="color: #f57d00;">640</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">768</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">PreferredContentSizeLandscape</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CGSize</span><span style="color: #333333;">(</span><span style="color: #f57d00;">704</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">768</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">DismissOnTap</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">isPad</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">PresentationStyle</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ContentPresentationStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">Edge</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">EdgePresentationPosition</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EdgePresentationPosition</span><span style="color: #333333;">.</span><span style="color: #333333;">Right</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">EntryTransition</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SlideFromRightTransition</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                FadeOutSource </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">ContentShadowRadius</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">10</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">})</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></p>
<p>And when navigating, you can do something similar as follows:</p>
<p><span style="font-family: Menlo;"> <span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">on</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">phone</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">perform</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">standard</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">navigation</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">while</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">on</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">tablet</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">show</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">dialog</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">presenter</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">for</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">better</span><span style="font-style: italic; color: #888888;"> experience</span><br />
<span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">GetService</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">IApplicationService</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">.</span><span style="color: #333333;">GetContext</span><span style="color: #333333;">()</span><span style="color: #333333;">.</span><span style="color: #333333;">Device</span><span style="color: #333333;">.</span><span style="color: #333333;">Kind</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DeviceKind</span><span style="color: #333333;">.</span><span style="color: #333333;">Phone</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ActiveViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">NavigationService</span><span style="color: #333333;">.</span><span style="color: #333333;">Navigate</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">AssignmentDetailTabViewModel</span><span style="color: #333333;">&gt;(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">NavigationParameter</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span><br />
<span style="color: #009695;">else</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ActiveViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">DialogPresenter</span><span style="color: #333333;">.</span><span style="color: #333333;">ShowAsync</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">AssignmentDetailTabViewModel</span><span style="color: #333333;">&gt;(</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">NavigationParameter</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DialogOptions</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        HideButtons </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">})</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></span></p>
<p>You can see more detail on that inside the <strong>FieldService.Core/ViewModels/AssignmentViewModel.cs</strong> file.</p>
<p><strong>Special and very important note for iOS</strong>: When using the TabViewController after push navigation, you must hide the root navigation controller in order for many correct UX to work properly, for example, the navigation controller transitions, search bar controller, and much more. This needs to be done because the TabViewController has its own NavigationController. It is simply done by calling the following code in the <strong>AssignmentDetailTabViewController</strong>.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">bool</span><span style="color: #333333;"> </span><span style="color: #333333;">EnsureNavigationContext</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p><span style="font-family: Menlo;"><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">InitializeView</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">InitializeView</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Important</span><span style="font-style: italic; color: #888888;">:</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Hide</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">root</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">navigation</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">bar</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">since</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">tab</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">will</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">have</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">its</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">own</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">NavigationController</span><span style="color: #333333;">.</span><span style="color: #333333;">SetNavigationBarHidden</span><span style="color: #333333;">(</span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></p>
<p>We also added a little touch.</p>
<p><img class="alignnone size-full wp-image-7856" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/call-map-ios.png" alt="call-map-ios.png" width="300" height="1136" /></p>
<p>You can click the call button to immediately call the specified number, or click on the address to launch Maps with immediate directions to the specified location. If you try to click any of the documents below, the report will be displayed in a modal ViewController.</p>
<p><img class="alignnone size-full wp-image-7866" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/report-ios.png" alt="report-ios.png" width="1388" height="1136" /></p>
<p>To launch the report on Android devices, you&#8217;ll need a PDF viewer installed to the emulator or device.</p>
<p><img class="alignnone size-full wp-image-7869" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/report-android.png" alt="report-android.png" width="1388" height="1136" /></p>
<p>&nbsp;</p>
<h1>The Footer View Template</h1>
<p>On iOS, notice that the new FooterViewTemplate is used, which resembles Apple-music style view template. On Android, since the tabs are placed on the top, the view template is used at the bottom of the screen.</p>
<p><img class="alignnone size-full wp-image-7817" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/footer-view-template.png" alt="footer-view-template.png" width="1519" height="918" /></p>
<p>The FooterViewTemplate is a new feature added in Crosslight 5.1. In iOS, to use thew new <strong>FotoerViewTemplate</strong>, simply override the property in the TabViewController and return the Nib file.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewTemplate</span><span style="color: #333333;"> </span><span style="color: #333333;">FooterViewTemplate</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewTemplate</span><span style="color: #333333;">(</span><span style="color: #3364a4;">AssignmentDetailTabFooter</span><span style="color: #333333;">.</span><span style="color: #333333;">Nib</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>If you&#8217;d like, you can also apply the translucent blur effect to the FooterViewTemplate by providing a <strong>Visual Effect View</strong> element using Xcode.</p>
<p><img class="alignnone size-full wp-image-7824" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/Screen-Shot-2016-03-29-at-4.15.07-PM.png" alt="Screen Shot 2016-03-29 at 4.15.07 PM.png" width="2264" height="1204" /></p>
<p>Here&#8217;s the result when applied.</p>
<p><video style="width: 300px; height: 100%;" src="http://developer.intersoftsolutions.com/download/attachments/24805642/blur-footer.mp4?api=v2" preload="metadata" controls="controls" width="700" height="150"><source type="video/mp4" src="http://developer.intersoftsolutions.com/download/attachments/24805642/blur-footer.mp4?api=v2" /><a href="http://developer.intersoftsolutions.com/download/attachments/24805642/blur-footer.mp4?api=v2"> http://developer.intersoftsolutions.com/download/attachments/24805642/blur-footer.mp4?api=v2 </a></video></p>
<p>Also note that when you use the <strong>FooterViewTemplate</strong>, Crosslight.iOS automatically calculates the height of the <strong>FooterViewTemplate</strong> and readjusts the content bounds above it, so that the contents not &#8220;overlayed&#8221; and obscured by the <strong>FooterViewTemplate</strong>. Very nifty.</p>
<p>On Android, you would simply override the <strong>ContentLayoutId</strong> of the <strong>AssignmentDetailTabFragment</strong> and return the layout you would like to use.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">&lt;?</span><span style="color: #333333;">xml</span><span style="color: #333333;"> </span><span style="color: #333333;">version</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">encoding</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">utf</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">8</span><span style="color: #f57d00;">&#8220;</span><span style="color: #009695;">?&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #3364a4;"> </span><span style="color: #333333;">xmlns:android</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">http</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">schemas</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">com</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">apk</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">res</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">xmlns:app</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">http</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">schemas</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">com</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">apk</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">res</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">auto</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">vertical</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">android</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">support</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">design</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">widget</span><span style="color: #3364a4;">.TabLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">tab_layout</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">app:tabTextAppearance</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@style</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">CustomTabText</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">FrameLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">fragment_container</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">FooterLayout</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">50dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:paddingLeft</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">10dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:paddingRight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">10dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:background</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">DADADA</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">0dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">50dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">FrameLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">StartButtonLayout</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">30dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ImageButton</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">StartButton</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:scaleType</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">fitCenter</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:background</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">00000000</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:src</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@drawable</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Start</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">FrameLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">FooterElapsedTimeLabel</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_marginLeft</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">10dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:text</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ElapsedTime</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textColor</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">000000</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">0dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">0dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">FooterNameLabel</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:text</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Name</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textStyle</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">bold</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:singleLine</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textColor</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">000000</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">0dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">FooterContactPersonLabel</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:text</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ContactPerson</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:singleLine</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textColor</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">000000</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">FrameLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">0dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">right</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">ActivePendingLayout</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">70dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">right</span><span style="color: #f57d00;">|</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">30dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Button</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">ActivePendingButton</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:text</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ACTIVE</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textColor</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">3BD606</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textSize</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">10sp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">right</span><span style="color: #f57d00;">|</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">70dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">30dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:background</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@drawable</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">circularTextViewGreen</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">AcceptRejectLayout</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">horizontal</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">80dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">right</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">0dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Button</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:text</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">✓</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textColor</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">ffffff</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textSize</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">22sp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">32dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">32dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:background</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@drawable</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">circularButtonBlue</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">AcceptButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">0dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_weight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Button</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:text</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">X</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textColor</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">ffffff</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textSize</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">22sp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">32dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">32dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:background</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@drawable</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">circularButtonRed</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">RejectButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">FrameLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span></span></p>
<p>One thing to note is the middle FrameLayout with the ID <strong>fragment_container</strong>. You&#8217;ll need to provide this or the fragment transaction would not work properly.</p>
<h1>Single-Responsibility Principle</h1>
<p>Before we proceed, I want you to think about this problem for a second: since an assignment can be manipulated from so many places: the list screen, the detail screen and the map screen, what design approach is best used to &#8220;sync&#8221; the assignment state from any screens, but in an elegant way? For example, the user can start an assignment from the list screen, then from the detail screen, the user pauses, changes the assignment status, then go back to the map screen, plays the assignment once more, change the assignment status to Active, and so on.</p>
<p>We need to access the assignment from various ViewModels across the app, but we must ensure that the assignment states are correct whenever it is accessed anywhere. In this sample, we&#8217;ve used the <a href="https://en.wikipedia.org/wiki/Single_responsibility_principle" target="_blank">Single-Responsibility Principle</a> to address this problem, exhibited by <strong>AssignmentViewModel.cs</strong> located inside <strong>FieldService.Core/ViewModels</strong> folder. This single class holds a unified information for the Active Assignment as well as any other commands that can interact with the assignment, such as accepting, rejecting, starting, changing status, etc.</p>
<p>Crosslight provides an elegant solution to this problem with the IoC (Inversion of Control) pattern. By registering the ViewModel once in the Container class, you can easily resolve and use this ViewModel anywhere. To begin with, open the <strong>AppService.cs</strong> file inside <strong>FieldService.Core/Infrastructure</strong> folder where you&#8217;ll an entry that looks similar to the following.</p>
<p><span style="font-family: Menlo;"> <span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">assignment</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">view</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">model</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">streamlines</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">all</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">assignment</span><span style="font-style: italic; color: #888888;">&#8211;</span><span style="font-style: italic; color: #888888;">related</span><span style="font-style: italic; color: #888888;"> logics</span><br />
<span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">which</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">is</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">resolved</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">in</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">numerous</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">ViewModels</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">such</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">as</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">list</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">map</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">and</span><span style="font-style: italic; color: #888888;"> detail</span><br />
<span style="color: #3364a4;">Container</span><span style="color: #333333;">.</span><span style="color: #333333;">Current</span><span style="color: #333333;">.</span><span style="color: #333333;">Register</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">AssignmentViewModel</span><span style="color: #333333;">&gt;(</span><span style="color: #333333;">c</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AssignmentViewModel</span><span style="color: #333333;">())</span><span style="color: #333333;">.</span><span style="color: #333333;">WithLifetimeManager</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ContainerLifetime</span><span style="color: #333333;">())</span><span style="color: #333333;">;</span></span></p>
<p>To resolve the registered ViewModel anyhwere, all you need to do is create a getter-only property that resolves the ViewModel from the Container. For example, as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AssignmentViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">AssignmentViewModel</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Container</span><span style="color: #333333;">.</span><span style="color: #333333;">Current</span><span style="color: #333333;">.</span><span style="color: #333333;">Resolve</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">AssignmentViewModel</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>Once this is done, you can easily use the object inside your BindingProvider and ensure that the data bindings work flawlessly across screens.</p>
<p><span style="font-family: Menlo;"> <span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Command</span><span style="font-style: italic; color: #888888;"> bindings</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ActivePendingButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AssignmentViewModel</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">ChangeStatusCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ActivePendingButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandParameterProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Assignment</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">RejectButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AssignmentViewModel</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">RejectCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">RejectButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandParameterProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Assignment</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AcceptButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AssignmentViewModel</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">AcceptCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AcceptButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandParameterProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Assignment</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">StartButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AssignmentViewModel</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">StartCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></span></p>
<p>Very simple and elegant.</p>
<h1>The Items Screen</h1>
<p>Let&#8217;s take a brief look at the Items screen.</p>
<p><img class="alignnone size-full wp-image-7876" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/items-screen.png" alt="items-screen.png" width="1332" height="1136" /></p>
<p>At a first glance, there&#8217;s nothing quite special in the Items screen. Until you try to swipe down.</p>
<p><img class="alignnone size-full wp-image-7881" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/search.png" alt="search.png" width="1416" height="1136" /></p>
<p>&nbsp;</p>
<p>Notice that when you hit on the search bar, the status bar color changes according to the overridden <strong>PreferredStatusBarStyle.</strong></p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIStatusBarStyle</span><span style="color: #333333;"> </span><span style="color: #333333;">PreferredStatusBarStyle</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SearchDisplayController</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;"> </span><span style="color: #333333;">&amp;&amp;</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SearchDisplayController</span><span style="color: #333333;">.</span><span style="color: #333333;">Active</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIStatusBarStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">Default</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">else</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIAppearanceSettings</span><span style="color: #333333;">.</span><span style="color: #333333;">StatusBarStyle</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></span></p>
<p>When you try to run this project on an iPad, you&#8217;ll get a popover controller when you try to add an item, and when you edit an item, you&#8217;ll get a nice modal ViewController that is displayed in the middle of the screen.</p>
<p><img class="alignnone size-full wp-image-7887" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/items-ipad.png" alt="items-ipad.png" width="2000" height="756" /></p>
<p>This corresponds to the BindingProvider defined for this view.</p>
<p><span style="font-family: Menlo;"><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">isTablet</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">TableView</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">SelectedCommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">NavigateToEditorCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">else</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">TableView</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">DetailNavigationTargetProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">NavigationTarget</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">AssignmentExpenseEditorViewModel</span><span style="color: #333333;">))</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></span></p>
<p>And in the ViewModel, the <strong>NavigateToEditorCommand</strong> invokes the following method.</p>
<p><span style="font-family: Menlo;"><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteNavigateToEditor</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">DialogPresenter</span><span style="color: #333333;">.</span><span style="color: #333333;">ShowAsync</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">AssignmentItemsEditorViewModel</span><span style="color: #333333;">&gt;(</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">NavigationParameter</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DialogOptions</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            NeutralButtonStyle </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DialogButtonStyle</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Colors</span><span style="color: #333333;">.</span><span style="color: #333333;">Red</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">})</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></span></p>
<p>When executing the Add command:</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteAdd</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">     </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">NavigationService</span><span style="color: #333333;">.</span><span style="color: #333333;">Navigate</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">AssignmentItemsEditorViewModel</span><span style="color: #333333;">&gt;(</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">NavigationParameter</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">TabViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">Assignment</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            NavigationMode </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">NavigationMode</span><span style="color: #333333;">.</span><span style="color: #333333;">Modal</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">            EnsureNavigationContext </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">            ModalPresentationStyle </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ModalPresentationStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">FormSheet</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">            PreferPopover </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">            CommandId </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Add</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">})</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></span></p>
<h1>The Labor Hours Screen</h1>
<p>In the Labor Hours screen, the experience is pretty similar when adding or editing an item.</p>
<p><img class="alignnone size-full wp-image-7902" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/labor-hours-ipad.png" alt="labor-hours-ipad.png" width="2000" height="730" /></p>
<p>Perhaps one particular interesting technique is how to update the footer total Labor Hours at runtime. If you notice closely, when you edit any of the labor hours or add a new entry with a specified Labor Hours, the total labor hours sums up automatically.</p>
<p><img class="alignnone size-full wp-image-7926" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/labor-hours.png" alt="labor-hours.png" width="2000" height="618" /></p>
<p>To achieve that effect, we provide the <strong>FooterViewTemplate</strong> for the Labor Hours screen.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewTemplate</span><span style="color: #333333;"> </span><span style="color: #333333;">FooterViewTemplate</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewTemplate</span><span style="color: #333333;">(</span><span style="color: #3364a4;">DetailFooterLayout</span><span style="color: #333333;">.</span><span style="color: #333333;">Nib</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>And here&#8217;s the <strong>DetailFooterLayout</strong>.</p>
<p><img class="alignnone size-full wp-image-7916" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/status-label-ios.png" alt="status-label-ios.png" width="1822" height="1080" /></p>
<p>Then in the BindingProvider, we bind the label to.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">StatusLabel</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">TextProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindingDescription</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">TabViewModel</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">Assignment</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">TotalLaborHours</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> StringFormat </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Labor</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Hours</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">(</span><span style="color: #f57d00;">{</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">}</span><span style="color: #f57d00;">)</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">})</span><span style="color: #333333;">;</span></span></p>
<p>Which corresponds to the parent ViewModel (TabViewModel) property&#8217;s active Assignment with its <strong>TotalLaborHours</strong> property.</p>
<p><span style="font-family: Menlo;"> <span style="color: #333333;">[</span><span style="color: #3364a4;">IgnoreDataMember</span><span style="color: #333333;">]</span><br />
<span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">double</span><span style="color: #333333;"> </span><span style="color: #333333;">TotalLaborHours</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">TimeSpan</span><span style="color: #333333;">.</span><span style="color: #333333;">FromTicks</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Labors</span><span style="color: #333333;">.</span><span style="color: #333333;">Sum</span><span style="color: #333333;">(</span><span style="color: #333333;">o</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">Ticks</span><span style="color: #333333;">))</span><span style="color: #333333;">.</span><span style="color: #333333;">TotalHours</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>This way, we should be able to centralize the labor hours binding to the same property, eliminating unnecessary workarounds to elegantly achieve this effect.</p>
<h1>Validating Input Using Form Validation Metadata</h1>
<p>When you input a new labor hour entry, or edit an existing one. If you open the <strong>FieldServiceModel.Metadata.cs</strong> file inside <strong>FieldService.Core/DomainModels</strong> folder, you&#8217;ll see the following.</p>
<p><img class="alignnone size-full wp-image-7937" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/validation-metadata.png" alt="validation-metadata.png" width="1976" height="960" /></p>
<p>If you notice there, there are two validation metadata, one is for the Expense entry and one is for the Labor entry. In this example, we&#8217;ve ensured that the Ticks property is a Required Entry and the minimum number for the ticks is 1. Once these conditions are satisfied, then the form is considered a vaild entry and the changes will be saved. Similar to the Expense entry, we&#8217;ve enforced that the Price should be greater than 1.</p>
<p><img class="alignnone size-full wp-image-7944" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/labor-hours-validation.png" alt="labor-hours-validation.png" width="1496" height="1136" /></p>
<p>The important thing to ensure that the validation metadata works properly is that you create a partial class from the model that you want to validate, and decorate it with the <strong>EntityMetadataAttribute</strong>.</p>
<p><span style="font-family: Menlo;"> <span style="color: #333333;">[</span><span style="color: #3364a4;">EntityMetadata</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Labor</span><span style="color: #333333;">.</span><span style="color: #3364a4;">LaborValidationMetadata</span><span style="color: #333333;">))]</span><br />
<span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Labor</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LaborValidationMetadata</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Required</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Min</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #009695;">long</span><span style="color: #333333;">)</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> ErrorMessage </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Hours</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">must</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">be</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">greater</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">than</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">long</span><span style="color: #333333;"> </span><span style="color: #333333;">Ticks</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">get</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #009695;">set</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<h1>The Expense Screen</h1>
<p>The Expense screen also uses pretty much the same technique with the Items and Labor Hours screen, which uses popover for adding new items and modal ViewController for the editing screen.</p>
<p><img class="alignnone size-full wp-image-7959" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/expense-screen-ios.png" alt="expense-screen-ios.png" width="1938" height="1458" /></p>
<p>When you go to the editor screen, we improved on the Form Builder experience a bit to support the image editor detail scenario as follows.</p>
<p><img class="alignnone size-full wp-image-7964" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/edit-image-form-builder.png" alt="edit-image-form-builder.png" width="2000" height="1417" /></p>
<p>And in Android,</p>
<p><img class="alignnone size-full wp-image-7966" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/image-editor-android.png" alt="image-editor-android.png" width="2000" height="1239" /></p>
<p>The FormMetadata is as simply as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ImageSection</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #333333;">Editor</span><span style="color: #333333;">(</span><span style="color: #333333;">EditorType</span><span style="color: #333333;">.</span><span style="color: #333333;">Image</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #333333;">Layout</span><span style="color: #333333;">(</span><span style="color: #333333;">Style </span><span style="color: #333333;">=</span><span style="color: #333333;"> LayoutStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">DetailOnly</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #333333;">Image</span><span style="color: #333333;">(</span><span style="color: #333333;">Height </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">200</span><span style="color: #333333;">,</span><span style="color: #333333;"> Placeholder </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">photo</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">png</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> Padding </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">8</span><span style="color: #333333;">,</span><span style="color: #333333;"> ScaleMode </span><span style="color: #333333;">=</span><span style="color: #333333;"> ImageScaleMode</span><span style="color: #333333;">.</span><span style="color: #333333;">ScaleAspectFill</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #333333;">ImagePicker</span><span style="color: #333333;">(</span><span style="color: #333333;">ImageResultMode </span><span style="color: #333333;">=</span><span style="color: #333333;"> ImageResultMode</span><span style="color: #333333;">.</span><span style="color: #333333;">Both</span><span style="color: #333333;">,</span><span style="color: #333333;"> UseThumbnailResult </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><span style="color: #333333;">,</span><span style="color: #333333;"> PickerResultCommand </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">FinishImagePickerCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #009695;">byte</span><span style="color: #333333;">[]</span><span style="color: #333333;"> </span><span style="color: #333333;">Image</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></span></p>
<h1>Jump to Complete Screen</h1>
<p>Another interesting interaction in this app is how you can directly jump to the Complete screen when you decide Complete the assignment, either from the List screen, Map screen, or from the assignment detail.</p>
<p><img class="alignnone size-full wp-image-7970" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/jump-complete-android.png" alt="jump-complete-android.png" width="2000" height="620" /></p>
<p>Due to the Single Responsibility principle that we&#8217;ve used in this application, achieving this scenario is very easy. In the <strong>AssignmentViewModel</strong>, simply navigate to the Confirmation screen.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteComplete</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">bool</span><span style="color: #333333;"> </span><span style="color: #333333;">isFromConfirmationPage</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">isFromConfirmationPage</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ExecutePendingOrComplete</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Complete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">else</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ActiveViewModel</span><span style="color: #333333;"> </span><span style="color: #009695;">is</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AssignmentDetailTabViewModel</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">already</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">in</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">detail</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">view</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">focus</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">confirmation</span><span style="font-style: italic; color: #888888;"> screen</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SetDetailSelectedIndex</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">else</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">we</span><span style="font-style: italic; color: #888888;">&#8216;</span><span style="font-style: italic; color: #888888;">re</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">in</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">main</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">view</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">perform</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">navigation</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> detail</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AutoFocusToConfirmation</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ExecuteNavigateToDetail</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<h1>The Completion Screen</h1>
<p>In the Completion screen, you&#8217;ll be greeted with two major UI elements: the Photos Grid/Collection View and a Signature Pad. If you try to complete the assignment immediately without entering any signature, you&#8217;ll get a toast message as follows.</p>
<p><img class="alignnone size-full wp-image-7989" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/android-completion.png" alt="android-completion.png" width="1783" height="1136" /></p>
<p>You can add additional photos when completing the assignment for extra information.</p>
<p><img class="alignnone size-full wp-image-7992" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/add-photo-completion.png" alt="add-photo-completion.png" width="1784" height="1136" /></p>
<p>The code to execute the completion of an assignment is pretty straightforward.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteComplete</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Assignment</span><span style="color: #333333;">.</span><span style="color: #333333;">Status</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Complete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ToastPresenter</span><span style="color: #333333;">.</span><span style="color: #333333;">Show</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">This</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">assignment</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">already</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">completed</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">else</span><span style="color: #333333;"> </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Assignment</span><span style="color: #333333;">.</span><span style="color: #333333;">Status</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Active</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Signature</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ToastPresenter</span><span style="color: #333333;">.</span><span style="color: #333333;">Show</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">To</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">complete</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">this</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">assignment</span><span style="color: #f57d00;">,</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">please</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">draw</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">your</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">sign</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">in</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">the</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">signature</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">pad</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">return</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Assignment</span><span style="color: #333333;">.</span><span style="color: #333333;">Signature</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Signature</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">TabViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">AssignmentViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">ExecuteComplete</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Assignment</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">IsSignatureImageViewVisible</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">IsSignatureCanvasVisible</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">CompleteCommand</span><span style="color: #333333;">.</span><span style="color: #333333;">RaiseCanExecuteChanged</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddPhotoCommand</span><span style="color: #333333;">.</span><span style="color: #333333;">RaiseCanExecuteChanged</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ClearSignatureCommand</span><span style="color: #333333;">.</span><span style="color: #333333;">RaiseCanExecuteChanged</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ToastPresenter</span><span style="color: #333333;">.</span><span style="color: #333333;">Show</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Assignment</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">completed</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">else</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ToastPresenter</span><span style="color: #333333;">.</span><span style="color: #333333;">Show</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">You</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">need</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">to</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">activate</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">the</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">assignment</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">first</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>You can also clear the signature you&#8217;ve entered by hitting the Clear button above the Signature Pad.</p>
<h1>Disable Editing After Completed</h1>
<p>After you&#8217;ve completed an assignment, you won&#8217;t be able to make any changes to any of the items available in the Assignment Detail. This includes Items, Labor Hours, Expenses, Photos and Signature. This is possible because we simply need to check for the current Assignment&#8217;s Status and see if an operation can be completed.</p>
<p><span style="font-family: Menlo;"> <span style="color: #333333;">[</span><span style="color: #3364a4;">MaxLength</span><span style="color: #333333;">(</span><span style="color: #f57d00;">255</span><span style="color: #333333;">)]</span><br />
<span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">Status</span><span style="color: #333333;"> </span><br />
<span style="color: #333333;">{</span><span style="color: #333333;"> </span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;">)</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">GetValue</span><span style="color: #333333;">(</span><span style="color: #333333;">StatusPropertyMetadata</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><span style="color: #333333;"> </span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">set</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SetValue</span><span style="color: #333333;">(</span><span style="color: #333333;">StatusPropertyMetadata</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><span style="color: #333333;"> </span><br />
<span style="color: #333333;">}</span></span></p>
<p>In the ViewModel, you would simply override the CanExecute method and see if the assignment is completed before executing your method.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">bool</span><span style="color: #333333;"> </span><span style="color: #333333;">CanExecuteSave</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">!</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">IsNewItem</span><span style="color: #333333;"> </span><span style="color: #333333;">&amp;&amp;</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;">.</span><span style="color: #333333;">Assignment</span><span style="color: #333333;">.</span><span style="color: #333333;">Status</span><span style="color: #333333;"> </span><span style="color: #333333;">==</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Complete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">    </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">CanExecuteSave</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></span></p>
<p>This is done so elegantly that you don&#8217;t have to access any of the platform-specific views to accomplish this.</p>
<h1>Wrapping Up</h1>
<p>Hopefully this post provides you with even more insights on what&#8217;s happening behind the scenes with the new Crosslight Field Service sample. If you&#8217;d like to see more Xamarin samples to be converted to Crosslight, please do let us know in the comments section below.</p>
<p>Till next post,<br />
Nicholas Lie</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/04/redesigning-xamarin-field-service-sample-with-crosslight-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://developer.intersoftsolutions.com/download/attachments/24805642/blur-footer.mp4?api=v2" length="406271" type="video/mp4" />
		</item>
		<item>
		<title>Crosslight Field Service is now available!</title>
		<link>http://blog.intersoftsolutions.com/2016/04/crosslight-field-service-is-now-available/</link>
		<comments>http://blog.intersoftsolutions.com/2016/04/crosslight-field-service-is-now-available/#comments</comments>
		<pubDate>Fri, 01 Apr 2016 10:28:22 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Reference Samples]]></category>
		<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Crosslight 5]]></category>
		<category><![CDATA[Samples]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=7586</guid>
		<description><![CDATA[Good news! For those of you who&#8217;ve waited for so long for Crosslight Field Service sample, it&#8217;s now available here. This sample highlights many of the best practices found when developing Crosslight applications with no tedious workarounds whatsoever. Works on iPhone, iPad, Android phones and tablets, this sample sets a new standard for Crosslight [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/banner-fieldservice2-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="banner-fieldservice" style="float:right; margin:0 0 10px 10px;" /><p>Good news! For those of you who&#8217;ve waited for so long for Crosslight Field Service sample, it&#8217;s now available <a href="http://git.intersoftsolutions.com/projects/CS/repos/app-fieldservice/browse" target="_blank">here</a>. This sample highlights many of the best practices found when developing Crosslight applications with no tedious workarounds whatsoever. Works on iPhone, iPad, Android phones and tablets, this sample sets a new standard for Crosslight app development.</p>
<p><img class="alignnone size-full wp-image-7612" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/banner-fieldservice2.png" alt="banner-fieldservice.png" width="2560" height="1005" /></p>
<p class="p1"><span class="s1">Features highlight:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Works on iOS and Android, on both phones and tablets devices.</span></li>
<li class="li1"><span class="s1">Showcases best coding practices when using Crosslight.</span></li>
<li class="li1"><span class="s1">Supports Dialog Presenter on tablet mode.</span></li>
<li class="li1"><span class="s1">True data binding capabilities with UI live updates.</span></li>
<li class="li1"><span class="s1">Saving and loading data through SQLite.</span></li>
<li class="li1"><span class="s1">Crosslight Form Builder to create a truly versatile form that works consistently on iOS and Android.</span></li>
<li class="li1"><span class="s1">FooterViewTemplate on iOS that mimics Apple-style app.</span></li>
<li class="li1"><span class="s1">The use of Crosslight Signature Pad to obtain customer&#8217;s signature upon assignment completion.</span></li>
<li class="li1"><span class="s1">Deep navigation to the completion screen when attempting to complete an assignment.</span></li>
<li class="li1"><span class="s1">Full iOS storyboard support.</span></li>
<li class="li1"><span class="s1">Use of CollectionView/GridView for photos.</span></li>
<li class="li1"><span class="s1">Supports changing ViewController&#8217;s Status Bar Style at runtime.</span></li>
<li class="li1">Showing directions with the Crosslight Location Service.</li>
</ul>
<p>If you haven&#8217;t figured out why we made this sample, I highly recommend you to check out the my previous <a href="http://blog.intersoftsolutions.com/2015/11/redesigning-xamarin-field-service-sample-with-crosslight/" target="_blank">blog post</a> where I highlight many parts of the sample that can be fixed and enhanced to produce a better app with Crosslight.</p>
<p>In the next blogpost, I&#8217;m going to elaborate more on the interesting scenarios found in this sample and the code behind to achieve each scenarios gracefully, which will hopefully be of great tips for seasoned and pro Crosslight developers alike.</p>
<p>Stay tuned,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/04/crosslight-field-service-is-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Unified WebUI Application</title>
		<link>http://blog.intersoftsolutions.com/2016/03/getting-started-with-unified-webui-application/</link>
		<comments>http://blog.intersoftsolutions.com/2016/03/getting-started-with-unified-webui-application/#comments</comments>
		<pubDate>Tue, 29 Mar 2016 06:19:15 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Getting Started Guide]]></category>
		<category><![CDATA[WebUI]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=7519</guid>
		<description><![CDATA[Starting from Premier Studio 2016, WebUI took a completely new look and feel with the new Unified Theming made for ASP.NET. As the name implies, Unified Theming allows you to impose a unified design language that applies to the entire suite of WebUI components with a modern [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/getting-started1-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="getting-started" style="float:right; margin:0 0 10px 10px;" /><p><img class="alignnone size-full wp-image-7540" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/getting-started1.png" alt="getting-started.png" width="2000" height="816" /></p>
<p>Starting from Premier Studio 2016, WebUI took a completely new look and feel with the new Unified Theming made for ASP.NET. As the name implies, Unified Theming allows you to impose a unified design language that applies to the entire suite of WebUI components with a modern CSS theming language that combines mixins and overridable variables.</p>
<p>This blog post is simply made to show you how to create a new Unified Theming project using the new project template that comes with Premier Studio 2016 or higher.</p>
<h1>What You Need</h1>
<p>To follow this tutorial, simply install Premier Studio 2016 or newer. You&#8217;ll also need to have Visual Studio 2012 or higher installed on Windows 7 or newer. If you haven&#8217;t installed it yet, please download it from our <a href="http://www.intersoftsolutions.com/RequestTrial" target="_blank">site</a>. Or, simply login to your <a href="http://www.intersoftsolutions.com/Account" target="_blank">account</a>.</p>
<h1>Let&#8217;s Do This</h1>
<p>Simply open up your Visual Studio instance, then hit <strong>New</strong>, <strong>Project</strong>. From the dialog that appears, choose <strong>Visual C#</strong>, <strong>Intersoft Solutions</strong>, <strong>ASP.NET</strong>, then choose <strong>Intersoft Unified Empty Web Application</strong>.</p>
<p><img class="alignnone size-full wp-image-7550" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/dialog.png" alt="dialog.png" width="1213" height="858" /></p>
<p>Enter the necessary details such as the project name, location and solution name. Hit OK when you&#8217;re done. To run this project, simply right-click on the <strong>Default.aspx</strong> file, then choose <strong>View in Browser</strong>.</p>
<p><img class="alignnone size-full wp-image-7557" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/view-in-browser1.png" alt="view-in-browser" width="1021" height="483" /></p>
<p>You&#8217;ll get the following screen.</p>
<p><img class="alignnone size-full wp-image-7559" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/result.png" alt="result.png" width="1784" height="1136" /></p>
<p>This new Unified Theming template is intuitively design so as to provide basic ideas on how to get started quickly with a new WebUI Unified Theming application, complete with working data bindings for WebCombo, WebInput, WebGrid, and more. At the bottom part of this page we&#8217;ve also provided several business-inspiring samples to help inspire your next big web applications.</p>
<p><img class="alignnone size-full wp-image-7582" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/business-inspiring.png" alt="business-inspiring.png" width="1976" height="1126" /></p>
<h1>Wrapping Up</h1>
<p>To learn more what you need to do to use the new Unified Theming in your existing applications, check out the <a href="http://developer.intersoftsolutions.com/display/WebUI/Unified+Theming" target="_blank">documentation</a>. Or, if you prefer to try migrating an existing WebUI sample, for example the WebGrid&#8217;s Enterprise sample, I highly recommend you to check out my previous <a href="http://blog.intersoftsolutions.com/2016/03/migrating-to-webui-unified-theming/" target="_blank">blog post</a>, where I&#8217;ve covered a step-by-step walkthrough on how to migrate the sample to use Unified Theming.</p>
<p>To get a better grasp on the Unified Theming feature and what customizable areas available for each control, feel free to check out these great documentations:</p>
<ul>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebGrid+Modern+Theme+Style+Reference" target="_blank">WebGrid Modern Theme Style Reference</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebCombo+Modern+Theme+Style+Reference" target="_blank">WebCombo Modern Theme Style Reference</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebInput+Modern+Theme+Style+Reference" target="_blank">WebInput Modern Theme Style Reference</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebDesktop+Modern+Theme+Style+Reference" target="_blank">WebDesktop Modern Theme Style Reference</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebScheduler+Modern+Theme+Style+Reference" target="_blank">WebScheduler Modern Theme Style Reference</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebEssentials+Modern+Theme+Style+Reference" target="_blank">WebEssentials Modern Theme Style Reference</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebTextEditor+Modern+Theme+Style+Reference" target="_blank">WebTextEditor Modern Theme Style Reference</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/WebUI/WebTreeView+Modern+Theme+Style+Reference" target="_blank">WebTreeView Modern Theme Style Reference</a></li>
</ul>
<p>We can&#8217;t wait to see what you&#8217;ve built with this new Unified Theming feature. Let us know in the comments section below!</p>
<p>Till next post,<br />
Nicholas Lie</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/03/getting-started-with-unified-webui-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating from Xamarin.Forms to Crosslight App</title>
		<link>http://blog.intersoftsolutions.com/2016/03/migrating-from-xamarin-forms-to-crosslight-app/</link>
		<comments>http://blog.intersoftsolutions.com/2016/03/migrating-from-xamarin-forms-to-crosslight-app/#comments</comments>
		<pubDate>Tue, 22 Mar 2016 07:52:56 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Getting Started Guide]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Android Material]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iOS 9]]></category>
		<category><![CDATA[Xamarin]]></category>
		<category><![CDATA[Xamarin Forms]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=6735</guid>
		<description><![CDATA[Many mobile developers who are just starting out with Crosslight often asked us with this question: I have an existing Xamarin.Forms app and would like to get started with Crosslight. How can I do that? This post aims to provide the answer to that question. However, I&#8217;d [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-vs-crosslight-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="xamarin-vs-crosslight" style="float:right; margin:0 0 10px 10px;" /><p><img class="alignnone size-full wp-image-6831" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-forms-vs-crosslight.png" alt="xamarin-forms-vs-crosslight.png" width="1902" height="986" /></p>
<p>Many mobile developers who are just starting out with Crosslight often asked us with this question: I have an existing Xamarin.Forms app and would like to get started with Crosslight. How can I do that? This post aims to provide the answer to that question. However, I&#8217;d have to be straightforward to you. There&#8217;s no easy way, since Xamarin.Forms isn&#8217;t compatible with Crosslight at all.</p>
<h1>Xamarin.Forms vs. Crosslight</h1>
<p>When should you build with Xamarin.Forms? According to <a href="https://xamarin.com/forms" target="_blank">Xamarin&#8217;s site</a>:</p>
<p><img class="alignnone size-full wp-image-6755" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-native-vs-xamarin-forms.png" alt="xamarin-native-vs-xamarin-forms.png" width="1910" height="1136" /></p>
<p>Well, in our opinion, the best time to use Xamarin.Forms is never to use it all. Why? There are two reasons: user experience and design pattern.</p>
<h2>The User Experience</h2>
<p>Sure, with Xamarin.Forms you can create an app that works. Even though you&#8217;re building a simple app that works, developers should at least pay attention to user experience. If the user experience is bad, prepare to receive 4-or-less-stars all over the App Store and Play Store. How bad is the user experience with Xamarin.Forms? Here&#8217;s two quick videos taken when running the XamarinFormsSample from Xamarin&#8217;s <a href="https://developer.xamarin.com/samples/xamarin-forms/GettingStarted/" target="_blank">Introduction to Xamarin.Forms</a>. One for Android:</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/90xky2TPQoA?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>And another for iOS:</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/4bzhqZo5RS0?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>What do you think? I&#8217;m not even sure where to begin. Xamarin.Forms tries to generalize the user experience for all platforms, which is not a good idea. When the app is first launched, a blank table view is shown. And then when the + button is tapped, a login form is shown. Why not display a login form at the beginning instead? On iOS, I&#8217;m not quite sure I&#8217;ve seen an app that places the Save button side-by-side with the Delete button.  Typically, they&#8217;re placed on the navigation controller as bar items. What&#8217;s worse, when I try to rotate the iOS sample, the bottom section below the image is practically unusable. In Android, when I rotate the device, I&#8217;m automatically kicked back out to the ListView screen and the list seems to be corrupted. Magic. Let&#8217;s compare them with the converted sample to Crosslight.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/SiL5bgiMoCc?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>And here&#8217;s on the one on Android.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/jChXcOtMTmE?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>I&#8217;ll let you be the judge. Take a look with the forms created with Crosslight Form Builder.</p>
<p><img class="alignnone size-full wp-image-7324" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-forms-rotation.png" alt="xamarin-forms-rotation.png" width="2000" height="709" /></p>
<p>With the Form Builder, you can easily create beautiful forms that complies with each platform&#8217;s user experience guidelines. And they&#8217;re all working correctly without any annoying user experience found in Xamarin.Forms. Buttons are correctly placed and rotation works perfectly. This is what a &#8220;minimal-working&#8221; app should look like.</p>
<h2>The Design Pattern</h2>
<p>Let&#8217;s take a brief look at the Xamarin.Forms code for the editor screen. Click on the image to see the large version.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-forms-code.png"><img class="alignnone size-full wp-image-7323" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-forms-code.png" alt="xamarin-forms-code.png" width="1603" height="2000" /></a></p>
<p>As you can see, Crosslight Form Builder showcases a better pattern where you design a form focused more on the model, rather than the View, as the View approach will not produce native-looking forms when used in cross-platform fashion. With Crosslight, developers are focused on models, making the View loosely-coupled. This will also lead in better long-term extensibility and clearer separation of concerns. Also, you&#8217;ll notice that the code to build forms are much lighter and shorter.</p>
<blockquote><p>It&#8217;s important to note that Form Builder is only one of many features available in Crosslight. In addition to Form Builder, developers can use Crosslight&#8217;s advanced data binding features to bind native views to a shared ViewModel and enjoy 100% UI logic reuse. However, this post specifically highlights the Form Builder feature to provide a comparable approach to Xamarin Forms.</p></blockquote>
<p>In this tutorial, I&#8217;m going to convert the existing sample XamarinFormsSample to Crosslight. In high-level overview, here&#8217;s what we&#8217;re going to accomplish:</p>
<ul>
<li>Add bootstrapper files for Android.</li>
<li>Remove Xamarin.Forms references.</li>
<li>Begin creating the views and ViewModels</li>
<li>Add bootstrapper files and views for Android.</li>
<li>Add bootstrapper files and views for iOS.</li>
</ul>
<p>Sounds good? Let&#8217;s begin.</p>
<h1>What You&#8217;ll Need</h1>
<p>To accomplish this tutorial perfectly, you&#8217;ll need to download the initial project from Xamarin&#8217;s website. Grab it <a href="https://developer.xamarin.com/samples/xamarin-forms/GettingStarted/GettingStarted.zip" target="_blank">here</a>. Extract the files and use only the <strong>XamarinFormsSample</strong> project.</p>
<p><img class="alignnone size-full wp-image-6865" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-9.37.20-AM.png" alt="Screen Shot 2016-03-18 at 9.37.20 AM.png" width="1764" height="1096" /></p>
<p>Open the .sln file and we&#8217;ll start from there. If you&#8217;re on Mac, you&#8217;ll need to have your Mobile Studio 2016 or higher installed on your Mac, since we&#8217;re going to be installing NuGet references via Xamarin Studio.</p>
<p>If you&#8217;re on Windows with Visual Studio, you should be able to follow this tutorial through without any hassles, since NuGet package management is built-in right into Visual Studio. You&#8217;ll also need to use at least Crosslight 5.0.5000.569 or higher. This package is available in the NuGet repository. We&#8217;ll add this package in the next step.</p>
<h1>Install Crosslight Packages</h1>
<p>Let&#8217;s begin by installing the necessary Crosslight references to these projects. If you&#8217;re on Mac, start by opening the <strong>Intersoft Package Console Extension</strong> from Xamarin Studio.</p>
<p><img class="alignnone size-full wp-image-6887" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/intersoft-package-console-extension.png" alt="intersoft-package-console-extension.png" width="1550" height="1028" /></p>
<ul>
<li>Install Intersoft.Crosslight package to all of your projects.<br />
<img class="alignnone size-full wp-image-6889" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/install-crosslight.png" alt="install-crosslight.png" width="1362" height="484" /></li>
<li>Install Intersoft.Crosslight.Android.v7 to the Android project.<br />
<img class="alignnone size-full wp-image-6891" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/install-crosslight-android-v7.png" alt="install-crosslight-android-v7.png" width="1468" height="480" /></li>
</ul>
<p>If you&#8217;re unfamiliar with installing Crosslight NuGet packages, it is highly recommended to check out the docs: <a href="http://developer.intersoftsolutions.com/display/crosslight/Introduction+to+Crosslight+NuGet+Packages" target="_blank">Introduction to Crosslight NuGet Packages</a>.</p>
<h1>Remove Xamarin.Forms References</h1>
<p>As radical as it seems, Crosslight is not designed to work with Xamarin.Forms, and therefore all Xamarin.Forms references have to be removed. Remove these highlighted references from your project.</p>
<p><img class="alignnone size-full wp-image-6897" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/remove-xamarin-forms.png" alt="remove-xamarin-forms.png" width="1588" height="734" /></p>
<p>After you&#8217;ve removed these references, make sure to double check the References folder once more, because there might be additional references such as these, which you need to remove as well.</p>
<p><img class="alignnone size-full wp-image-6903" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-forms-references.png" alt="xamarin-forms-references.png" width="250" height="262" /></p>
<p>Also, remove the <strong>Views</strong> folder from the <strong>XamarinFormsSample</strong> (PCL) project entirely and including the <strong>Colours.cs</strong> and <strong>Fonts.cs</strong>.</p>
<p><img class="alignnone size-full wp-image-6957" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/remove-unnecessary-files-pcl.png" alt="remove-unnecessary-files-pcl.png" width="250" height="660" /></p>
<p>Also, you might want to remove references to <strong>Xamarin.Forms</strong> inside the <strong>packages.config</strong> that exists in each project, so you can easily update Crosslight assemblies for this project without the Xamarin.Forms references re-appearing each time.</p>
<p>&nbsp;</p>
<h1>Bootstrapping the PCL Project</h1>
<p>Add a new folder called <strong>Infrastructure</strong> inside the <strong>XamarinFormsSample</strong> (PCL) project and an empty class called <strong>AppService.cs.</strong></p>
<p><img class="alignnone size-full wp-image-6921" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/app-service.png" alt="app-service.png" width="250" height="264" /></p>
<p>Then replace the contents as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #c44c57;">Core</span><span style="color: #333333;">.</span><span style="color: #c44c57;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Infrastructure</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Crosslight&#8217;s shared application initializer.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     This is the perfect place to register repositories, custom services, and other dependencies via IoC.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">seealso</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">Intersoft</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Crosslight</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">ApplicationServiceBase</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">sealed</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CrosslightAppAppService</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ApplicationServiceBase</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes a new instance of the </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">CrosslightAppAppService</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;"> class.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">context</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The application context that implements </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">T</span><span style="font-style: italic; color: #888888;">:</span><span style="font-style: italic; color: #888888;">Intersoft</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Crosslight</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">IApplicationContext</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CrosslightAppAppService</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationContext</span><span style="color: #333333;"> </span><span style="color: #333333;">context</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">context</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Called when the application is starting.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">parameter</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The startup parameters.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">OnStart</span><span style="color: #333333;">(</span><span style="color: #3364a4;">StartParameter</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">OnStart</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;">Specify</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">first</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">ViewModel</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">use</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">when</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">launching</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">application</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SetRootViewModel</span><span style="color: #333333;">&lt;</span><span style="color: #c44c57;">LoginViewModel</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This is the application service for the Core project, which is the perfect place to register custom services and additional dependencies via IoC. In this project, we won&#8217;t add anything except for just simple constructor that takes in one <strong>IApplicationContext</strong> parameter. This is the default constructor for this class. Also, in the overridden OnStart method, we&#8217;ve defined the root ViewModel as <strong>LoginViewModel</strong>, which we will create in just a moment.</p>
<p>Next, add another empty class inside the <strong>Models</strong> folder and give it a name of <strong>ModelBase.cs</strong>.</p>
<p><img class="alignnone size-full wp-image-6929" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/model-base.png" alt="model-base.png" width="250" height="414" /></p>
<p>Replace the content as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Collections</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Collections</span><span style="color: #333333;">.</span><span style="color: #333333;">Generic</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">ComponentModel</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Linq</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Models</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     A handy model class that conforms to Crosslight lifecycle.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Most of the time you will only need to subclass this class when introducing a new domain model.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Includes validation features as well.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">seealso</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">System</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">ComponentModel</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">INotifyPropertyChanged</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">seealso</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">System</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">ComponentModel</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">INotifyDataErrorInfo</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">seealso</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">Intersoft</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Crosslight</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">IDataValidation</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ModelBase</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">INotifyPropertyChanged</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">INotifyDataErrorInfo</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IDataValidation</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Fields</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">readonly</span><span style="color: #333333;"> </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ValidationResult</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ValidationResult</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Gets a value that indicates whether the entity has validation errors.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">virtual</span><span style="color: #333333;"> </span><span style="color: #009695;">bool</span><span style="color: #333333;"> </span><span style="color: #333333;">HasErrors</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">.</span><span style="color: #333333;">Count</span><span style="color: #333333;">(</span><span style="color: #333333;">o</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> !</span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">IsSuccess</span><span style="color: #333333;">)</span><span style="color: #333333;"> </span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #f57d00;">0</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Clears all errors.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ClearAllErrors</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #009695;">string</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">properties</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #009695;">string</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">var</span><span style="color: #333333;"> result </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">var</span><span style="color: #333333;"> member </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #333333;">result</span><span style="color: #333333;">.</span><span style="color: #333333;">MemberNames</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">!</span><span style="color: #333333;">properties</span><span style="color: #333333;">.</span><span style="color: #333333;">Contains</span><span style="color: #333333;">(</span><span style="color: #333333;">member</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                        </span><span style="color: #333333;">properties</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #333333;">member</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">            </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">.</span><span style="color: #333333;">Clear</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnErrorsChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;"> property </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #333333;">properties</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #333333;">property</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Clears the error.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">propertyName</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">Name of the property.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ClearError</span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">emptyValidationResult</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ValidationResult</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">var</span><span style="color: #333333;"> result </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">result</span><span style="color: #333333;">.</span><span style="color: #333333;">MemberNames</span><span style="color: #333333;">.</span><span style="color: #333333;">Contains</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">((</span><span style="color: #3364a4;">IList</span><span style="color: #333333;">)</span><span style="color: #333333;"> </span><span style="color: #333333;">result</span><span style="color: #333333;">.</span><span style="color: #333333;">MemberNames</span><span style="color: #333333;">)</span><span style="color: #333333;">.</span><span style="color: #333333;">Remove</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">                    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">!</span><span style="color: #333333;">result</span><span style="color: #333333;">.</span><span style="color: #333333;">MemberNames</span><span style="color: #333333;">.</span><span style="color: #333333;">Any</span><span style="color: #333333;">())</span><br />
<span style="color: #333333;">                        </span><span style="color: #333333;">emptyValidationResult</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #333333;">result</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">var</span><span style="color: #333333;"> result </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #333333;">emptyValidationResult</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">.</span><span style="color: #333333;">Remove</span><span style="color: #333333;">(</span><span style="color: #333333;">result</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnErrorsChanged</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Gets all errors.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IEnumerable</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ValidationResult</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">GetAllErrors</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">.</span><span style="color: #333333;">Where</span><span style="color: #333333;">(</span><span style="color: #333333;">o</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> !</span><span style="color: #333333;">o</span><span style="color: #333333;">.</span><span style="color: #333333;">IsSuccess</span><span style="color: #333333;">)</span><span style="color: #333333;">.</span><span style="color: #333333;">ToList</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Gets the validation errors for a specified property or for the entire entity.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">propertyName</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The name of the property to retrieve validation errors for; or null or</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">F</span><span style="font-style: italic; color: #888888;">:</span><span style="font-style: italic; color: #888888;">System</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">String</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Empty</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">, to retrieve entity-level errors.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The validation errors for the property or entity.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IEnumerable</span><span style="color: #333333;"> </span><span style="color: #333333;">GetErrors</span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">validationResult</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ValidationResult</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">var</span><span style="color: #333333;"> result </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">((</span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">IsNullOrEmpty</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><span style="color: #333333;"> || </span><span style="color: #333333;">result</span><span style="color: #333333;">.</span><span style="color: #333333;">MemberNames</span><span style="color: #333333;">.</span><span style="color: #333333;">Contains</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">))</span><span style="color: #333333;"> </span><span style="color: #333333;">&amp;&amp;</span><span style="color: #333333;"> !</span><span style="color: #333333;">result</span><span style="color: #333333;">.</span><span style="color: #333333;">IsSuccess</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">validationResult</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #333333;">result</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">validationResult</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Called when [errors changed].</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">propertyName</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">Name of the property.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">virtual</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">OnErrorsChanged</span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnErrorsChanged</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DataErrorsChangedEventArgs</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Raises the </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">E</span><span style="font-style: italic; color: #888888;">:</span><span style="font-style: italic; color: #888888;">ErrorsChanged</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;"> event.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">e</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">DataErrorsChangedEventArgs</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;"> instance containing the event data.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">OnErrorsChanged</span><span style="color: #333333;">(</span><span style="color: #3364a4;">DataErrorsChangedEventArgs</span><span style="color: #333333;"> </span><span style="color: #333333;">e</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">handler</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ErrorsChanged</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">handler</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">handler</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">e</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Called when [property changed].</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">propertyName</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">Name of the property.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">virtual</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">PropertyChangedEventArgs</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Raises the </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">E</span><span style="font-style: italic; color: #888888;">:</span><span style="font-style: italic; color: #888888;">PropertyChanged</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;"> event.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">e</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">PropertyChangedEventArgs</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;"> instance containing the event data.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #3364a4;">PropertyChangedEventArgs</span><span style="color: #333333;"> </span><span style="color: #333333;">e</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyChanged</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">PropertyChanged</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">propertyChanged</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">propertyChanged</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">e</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Raises the property changed.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">propertyName</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">Name of the property.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">RaisePropertyChanged</span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Sets the error.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">errorMessage</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The error message.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">propertyName</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">Name of the property.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">SetError</span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">errorMessage</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">_validationResultList</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ValidationResult</span><span style="color: #333333;">(</span><span style="color: #333333;">errorMessage</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">propertyName</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnErrorsChanged</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #333333;">propertyName</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Validate this instance.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">virtual</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Validate</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">INotifyDataErrorInfo</span><span style="color: #c12dac;"> Members</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Occurs when the validation errors have changed for a property or for the entire entity.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">event</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EventHandler</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">DataErrorsChangedEventArgs</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">ErrorsChanged</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">INotifyPropertyChanged</span><span style="color: #c12dac;"> Members</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Occurs when a property value changes.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">event</span><span style="color: #333333;"> </span><span style="color: #3364a4;">PropertyChangedEventHandler</span><span style="color: #333333;"> </span><span style="color: #333333;">PropertyChanged</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This is the base class used for domain models used with Crosslight projects that supports <strong>INotifyPropertyChanged</strong> for data binding and also data validation. It is highly recommended that the models used in the project subclasses this <strong>ModelBase</strong> class. Let&#8217;s modify the existing models now and do that. Open up <strong>Employee.cs</strong> and replace the contents as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Models</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Model</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     This is a domain object that holds information about a given employee.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ModelBase</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">ImageUri</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">VC</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Fields</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_firstName</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_imageUri</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_lastName</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_twitter</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">DisplayName</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Format</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #ff0000;">{</span><span style="color: #ff0000;">0</span><span style="color: #ff0000;">}</span><span style="color: #f57d00;">,</span><span style="color: #f57d00;"> </span><span style="color: #ff0000;">{</span><span style="color: #ff0000;">1</span><span style="color: #ff0000;">}</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">_lastName</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">_firstName</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">FirstName</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_firstName</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">value</span><span style="color: #333333;">.</span><span style="color: #333333;">Equals</span><span style="color: #333333;">(</span><span style="color: #333333;">_firstName</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">StringComparison</span><span style="color: #333333;">.</span><span style="color: #333333;">Ordinal</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">return</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_firstName</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">DisplayName</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">ImageUri</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_imageUri</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">value</span><span style="color: #333333;">.</span><span style="color: #333333;">Equals</span><span style="color: #333333;">(</span><span style="color: #333333;">_imageUri</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">StringComparison</span><span style="color: #333333;">.</span><span style="color: #333333;">Ordinal</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">return</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_imageUri</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ImageUri</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">LastName</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_lastName</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">value</span><span style="color: #333333;">.</span><span style="color: #333333;">Equals</span><span style="color: #333333;">(</span><span style="color: #333333;">_lastName</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">StringComparison</span><span style="color: #333333;">.</span><span style="color: #333333;">Ordinal</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">return</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_lastName</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">DisplayName</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">Twitter</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_twitter</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">value</span><span style="color: #333333;">.</span><span style="color: #333333;">Equals</span><span style="color: #333333;">(</span><span style="color: #333333;">_twitter</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">StringComparison</span><span style="color: #333333;">.</span><span style="color: #333333;">Ordinal</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">return</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_twitter</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Twitter</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>In this code, note the <strong>partial</strong> modifier for this class. This is needed for the Crosslight Form Builder metadata, which we&#8217;ll create much later in the tutorial. Then modify <strong>LoginInfo.cs</strong> as well.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">ComponentModel</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">.</span><span style="color: #333333;">CompilerServices</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Models</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Model</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">   This class is used to capture login credentials and to perform very simple authentication.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginInfo</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ModelBase</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_password</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Empty</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_username</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Empty</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">UserName</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_username</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_username</span><span style="color: #333333;">.</span><span style="color: #333333;">Equals</span><span style="color: #333333;">(</span><span style="color: #009695;">value</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">StringComparison</span><span style="color: #333333;">.</span><span style="color: #333333;">Ordinal</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">return</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_username</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;"> </span><span style="color: #333333;">??</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Empty</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">UserName</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">Password</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_password</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_password</span><span style="color: #333333;">.</span><span style="color: #333333;">Equals</span><span style="color: #333333;">(</span><span style="color: #009695;">value</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">StringComparison</span><span style="color: #333333;">.</span><span style="color: #333333;">Ordinal</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">return</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_password</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;"> </span><span style="color: #333333;">??</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Empty</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Password</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Validate</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ClearAllErrors</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">IsNullOrEmpty</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">UserName</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SetError</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Please</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">enter</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">any</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">username</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">UserName</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">IsNullOrEmpty</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Password</span><span style="color: #333333;">))</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SetError</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Please</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">enter</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">any</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">password</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Password</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>The Validate method shown in the above snippet code is one of the examples how you can perform validation in Crosslight Form Builder. Here, we set the error message when user did not enter any username or password in the form upon login. Although, there is a more advanced version of form validation with the Crosslight Form Builder, that is to use the <strong>EntityMetadataAttribute. </strong>However, it will be covered in a separate blog post.</p>
<h1>Creating the Login Screen</h1>
<p>If you notice from the original sample, user can&#8217;t perform any operation unless they&#8217;ve performed login. Let&#8217;s modify the sample a bit to show the login screen at the initial state. So we&#8217;ll prepare the login screen first, then try to create the login screen on the Android platform. We&#8217;ll also bootstrap the Android project along the way.</p>
<p>Create a new folder in the <strong>XamarinFormsSample</strong> (PCL) project and give it a name of <strong>ViewModels</strong>. Then create a new <strong>Crosslight View Model</strong> in the folder, called <strong>LoginViewModel</strong>.</p>
<p><img class="alignnone size-full wp-image-6967" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-loginviewmodel.png" alt="add-loginviewmodel.png" width="250" height="458" /></p>
<p>Replace the entire contents as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Input</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Model</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditorViewModelBase</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LoginInfo</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginViewModel</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginInfo</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">LoginCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;">(</span><span style="color: #333333;">ExecuteLogin</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Fields</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginInfo</span><span style="color: #333333;"> </span><span style="color: #333333;">_loginInfo</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">LoginCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">get</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #009695;">set</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginInfo</span><span style="color: #333333;"> </span><span style="color: #333333;">LoginInfo</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_loginInfo</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_loginInfo</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">_loginInfo</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">LoginInfo</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteLogin</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>In the constructor of this ViewModel, we&#8217;ve just simply instantiated a new <strong>LoginInfo</strong> object model, a new <strong>DelegateCommand</strong> <strong>LoginCommand</strong> and the <strong>Title</strong> for the ViewModel. We&#8217;ll leave the ExecuteLogin method as empty for now, all we want to accomplish now is displaying the Login screen perfectly. We&#8217;ll modify this method later on. Save this file and rebuild try to rebuild the <strong>XamarinFormsSample</strong> (PCL) project.</p>
<p><img class="alignnone size-full wp-image-6979" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-11.40.16-AM.png" alt="Screen Shot 2016-03-18 at 11.40.16 AM.png" width="3104" height="1842" /></p>
<p>You&#8217;ll get the error as shown in the shot above. This is because we&#8217;ve removed all references to Xamarin.Forms. We can completely remove this file, however, you might want to keep the <strong>Employees</strong> property in this file somewhere, perhaps in a separate notepad file for now. We&#8217;re going to need this for the list of employees later after we&#8217;ve successfully created the login module.</p>
<p><img class="alignnone size-full wp-image-6984" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-11.42.20-AM.png" alt="Screen Shot 2016-03-18 at 11.42.20 AM.png" width="2282" height="1342" /></p>
<p>Delete <strong>App.cs</strong> when you&#8217;re done. Rebuild the <strong>XamarinFormsSample</strong> (PCL) project one more time and you should be able to build it now.</p>
<p><img class="alignnone size-full wp-image-6989" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/pcl-build-successful.png" alt="pcl-build-successful.png" width="1976" height="266" /></p>
<p>Great! Let&#8217;s create the Android login view for this ViewModel.</p>
<h1>Bootstrapping the Android Project</h1>
<p>Before we can use this project, we need to &#8220;upgrade&#8221; this project to use new project standards. Let&#8217;s go through each step carefully, one step at a time.</p>
<p>Download this <a href="http://developer.intersoftsolutions.com/display/crosslight/Migrating+from+Crosslight+Android+Classic?preview=%2F23702119%2F24309664%2Fmipmap.zip" target="_blank">mipmap.zip</a> file and extract it. These files will be used as the launcher icons for our Android project. Import them into the <strong>Resources</strong> folder by using <strong>Add Existing Folder</strong> menu. What these mipmap icons do is provide a better high-res icons for the app launchers. For example, if your device is on the hdpi-display scale, then it will use the xhdpi icons for the icon launchers so that it will look crisp.</p>
<p><img class="alignnone size-full wp-image-7017" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-existing-folder.png" alt="add-existing-folder.png" width="1240" height="316" /></p>
<p>Select each mipmap folder so that your project looks as follows.</p>
<p><img class="alignnone size-full wp-image-7019" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/mipmap.png" alt="mipmap.png" width="250" height="656" /></p>
<p>Start by opening the <strong>Android</strong> project Options. To do this, right-click on the Android project and choose <strong>Options</strong>.</p>
<p><img class="alignnone size-full wp-image-6997" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/android-project-options.png" alt="android-project-options.png" width="500" height="1050" /></p>
<p>In the dialog that appears, choose <strong>Main Settings</strong> and change the <strong>Default Namespace</strong> to <strong>XamarinFormsSample.Android</strong>.</p>
<p><img class="alignnone size-full wp-image-7108" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-5.08.51-PM.png" alt="Screen Shot 2016-03-18 at 5.08.51 PM.png" width="1794" height="1292" /></p>
<p>Then choose <strong>General</strong>, ensure that the <strong>Target Framework</strong> has been set to <strong>Android 5.0 (Lollipop)</strong>.</p>
<p><img class="alignnone size-full wp-image-7003" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-11.50.17-AM.png" alt="Screen Shot 2016-03-18 at 11.50.17 AM.png" width="1779" height="1378" /></p>
<p>Next, in the <strong>Android Build</strong> menu, the <strong>Advanced</strong> tab, ensure that the all <strong>Supported ABIs</strong> are ticked for both <strong>Debug</strong> and <strong>Release</strong> configurations.</p>
<p><img class="alignnone size-full wp-image-7005" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-11.51.31-AM.png" alt="Screen Shot 2016-03-18 at 11.51.31 AM.png" width="1814" height="1413" /></p>
<p>In the next menu, change the <strong>Application icon</strong> to <strong>@mipmap/Icon</strong>. This corresponds to the mipmap folders that we&#8217;ve just imported.</p>
<p><img class="alignnone size-full wp-image-7023" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-3.50.17-PM.png" alt="Screen Shot 2016-03-18 at 3.50.17 PM.png" width="1744" height="1373" /></p>
<p>You can also ensure that the <strong>Target Android</strong> version is set to <strong>Android 5.0 </strong>or higher. Next, open up <strong>AndroidManifest.xml</strong> located inside <strong>Properties</strong> folder. Change the current theme to <strong>@style/Theme.Crosslight.Material.Light</strong>.</p>
<p><img class="alignnone size-full wp-image-7136" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/android-theme-material.png" alt="android-theme-material.png" width="1174" height="294" /></p>
<p>Next, create a new <strong>Activities</strong> folder inside the Android project and move the <strong>MainActivity.cs</strong> there.</p>
<p><img class="alignnone size-full wp-image-7036" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/main-activity.png" alt="main-activity.png" width="250" height="460" /></p>
<p>Rename this file as <strong>LaunchActivity.cs</strong> and replace the contents as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">App</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The splash screen Activity. To change the launcher icon for the Android app, simply change the Icon property.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">seealso</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">Intersoft</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Crosslight</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Android</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">StartActivity</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Activity</span><span style="color: #333333;">(</span><span style="color: #333333;">Label </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">XamarinFormSample</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">Android</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> MainLauncher </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><span style="color: #333333;"> NoHistory </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><span style="color: #333333;"> Icon </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@mipmap</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">icon</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> Theme </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@style</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Theme</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">Splash</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LaunchActivity</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">StartActivity</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This is just the splash screen that will be launched when the Android app is run. Since we&#8217;ve used a new Theme here, let&#8217;s add the styles to our <strong>Resources</strong> folder. Add a new styles.xml file inside the <strong>Resources/values</strong> folder.</p>
<p><img class="alignnone size-full wp-image-7046" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/styles.png" alt="styles.png" width="200" height="656" /></p>
<p>Add the following entry to the <strong>styles.xml</strong> file.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">&lt;?</span><span style="color: #333333;">xml</span><span style="color: #333333;"> </span><span style="color: #333333;">version</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">encoding</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">utf</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">8</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #009695;">?&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #3364a4;">resources</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">style</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Theme</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">Splash</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">parent</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">Theme</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">      </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">item</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">windowBackground</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">@drawable/light_splash</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">item</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">item</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">windowNoTitle</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">true</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">item</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">style</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">resources</span><span style="color: #333333;">&gt;</span></span></p>
<p>And also add the following <strong>light_splash.png</strong> drawable to your <strong>Resources/drawable</strong> folder.</p>
<p><img class="alignnone size-full wp-image-7050" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/light_splash.png" alt="light_splash.png" width="250" height="960" /></p>
<p>Next, add a new folder in the root directory of the Android project, called <strong>Infrastructure</strong>. Then add a new empty class called <strong>AppInitializer</strong>.</p>
<p><img class="alignnone size-full wp-image-7123" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/android-appinitializer.png" alt="android-appinitializer.png" width="200" height="418" /></p>
<p>Replace the contents of the <strong>AppInitializer.cs</strong> as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Infrastructure</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Infrastructure</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Android Application Initializer class.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">seealso</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">Intersoft</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Crosslight</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">IApplicationInitializer</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">sealed</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppInitializer</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IApplicationInitializer</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">Implementation</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">of</span><span style="color: #c12dac;"> IApplicationInitializer</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Gets the application service based on the current context.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">context</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The context of the application.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The application service.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IApplicationService</span><span style="color: #333333;"> </span><span style="color: #333333;">GetApplicationService</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationContext</span><span style="color: #333333;"> </span><span style="color: #333333;">context</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CrosslightAppAppService</span><span style="color: #333333;">(</span><span style="color: #333333;">context</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes and prepares the application for launch.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">appHost</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The application host.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">InitializeApplication</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationHost</span><span style="color: #333333;"> </span><span style="color: #333333;">appHost</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes the components required for the application to run properly.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">appHost</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The application host.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">InitializeComponents</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationHost</span><span style="color: #333333;"> </span><span style="color: #333333;">appHost</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes the services for the application to start properly.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">appHost</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The application host.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">InitializeServices</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationHost</span><span style="color: #333333;"> </span><span style="color: #333333;">appHost</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This file is the application initializer for Android, useful for registering custom Android services, views, and Form Builder components. We&#8217;ll leave this class as it is for now.</p>
<p>To create the login view for Android, we&#8217;re going to take advantage of the Crosslight Form which will help us create the login screen very quickly. Begin by creating a new folder inside the <strong>XamarinFormsSample</strong> (PCL) project called <strong>Forms</strong>. Then create a new empty class called <strong>LoginInfo.FormMetadata.cs</strong> inside the newly created folder. Use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Forms</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Model</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">FormMetadataType</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">LoginInfo</span><span style="color: #333333;">.</span><span style="color: #3364a4;">FormMetadata</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginInfo</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Form</span><span style="color: #333333;">(</span><span style="color: #333333;">Title </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Login</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FormMetadata</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Section</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginSection</span><span style="color: #333333;"> </span><span style="color: #333333;">LoginSection</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginSection</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Layout</span><span style="color: #333333;">(</span><span style="color: #333333;">Style </span><span style="color: #333333;">=</span><span style="color: #333333;"> LayoutStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">DetailOnly</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">StringInput</span><span style="color: #333333;">(</span><span style="color: #333333;">Placeholder </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Username</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">UserName</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Layout</span><span style="color: #333333;">(</span><span style="color: #333333;">Style </span><span style="color: #333333;">=</span><span style="color: #333333;"> LayoutStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">DetailOnly</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">StringInput</span><span style="color: #333333;">(</span><span style="color: #333333;">Placeholder </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Password</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Display</span><span style="color: #333333;">(</span><span style="color: #333333;">Caption </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Password</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">Password</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Editor</span><span style="color: #333333;">(</span><span style="color: #333333;">EditorType</span><span style="color: #333333;">.</span><span style="color: #333333;">Button</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Display</span><span style="color: #333333;">(</span><span style="color: #333333;">Caption </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Login</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Binding</span><span style="color: #333333;">(</span><span style="color: #333333;">Path </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">LoginCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> SourceType </span><span style="color: #333333;">=</span><span style="color: #333333;"> BindingSourceType</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModel</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Button</span><span style="color: #333333;">(</span><span style="color: #333333;">Title </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Login</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> TextColor </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">FF285AFF</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> Style </span><span style="color: #333333;">=</span><span style="color: #333333;"> ButtonStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">Simple</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">LoginButton</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This is the FormMetadata that will be used for our login screen. This class is decorated with the <strong>FormMetadataTypeAttribute</strong> class which will indicate that this class will be used for the Form Builder definition. Also note that this class is a partial class from the <strong>LoginInfo</strong> model found inside the <strong>XamarinFormsSample/Models</strong> folder. Here, we only have a single <strong>LoginSection</strong> which consists of the following UI elements:</p>
<ul>
<li>Text box for the UserName</li>
<li>Text box for the Password</li>
<li>Button for the Login button.</li>
</ul>
<p>It is recommended to match the property name with the model to ensure Form Builder automatic validation. The login button is also bound to the <strong>LoginCommand</strong> in the <strong>LoginViewModel</strong>.</p>
<p>Add a new <strong>Crosslight Android Material Activity</strong> inside the <strong>Activities</strong> folder.</p>
<p><img class="alignnone size-full wp-image-7061" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/loginactivity.png" alt="loginactivity.png" width="250" height="336" /></p>
<p>Give it a name of <strong>LoginActivity</strong>.</p>
<p><img class="alignnone size-full wp-image-7059" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-18-at-4.40.00-PM.png" alt="Screen Shot 2016-03-18 at 4.40.00 PM.png" width="1640" height="1298" /></p>
<p>Replace the contents of <strong>LoginActivity.cs</strong> as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">App</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Activities</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The main activity that acts as the host for LoginFragment.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Activity</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginActivity</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppCompatActivity</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LoginViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginActivity</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginActivity</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">JniHandleOwnership</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This Activity will act as a container for the <strong>LoginFragment</strong>, which is the real view that&#8217;s being rendered for the login screen. Create a new folder called <strong>Fragments</strong> at the root of the Android project.</p>
<p><img class="alignnone size-full wp-image-7070" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/fragments.png" alt="fragments.png" width="250" height="332" /></p>
<p>Create a new <strong>Crosslight Android Material Form Fragment</strong> in this folder, called <strong>LoginFragment</strong>.</p>
<p><img class="alignnone size-full wp-image-7325" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-22-at-1.35.42-PM.png" alt="Screen Shot 2016-03-22 at 1.35.42 PM.png" width="1681" height="1311" /></p>
<p>Paste the following code into <strong>LoginFragment</strong>.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">BindingProviders</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Fragments</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The main Fragment contained inside LoginActivity.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">LoginFragment</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FormFragment</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LoginViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes this instance.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">IconId</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Drawable</span><span style="color: #333333;">.</span><span style="color: #333333;">ic_toolbar</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This project contains nothing except for the icon that will be used in the toolbar. When trying to run the project, you&#8217;ll get an error that <strong>ic_toolbar</strong> cannot be found. This can be easily resolved by copying the following image to the <strong>Resources/drawable</strong> folder.</p>
<p><img class="alignnone size-full wp-image-7115" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/ic_toolbar1.png" alt="ic_toolbar.png" width="48" height="48" /></p>
<p>The above is white and transparent, which makes it might be hard to see, but this icon will fit to almost Material Toolbar color you throw at it, except for white color, of course. You can replace this icon later with your own app branding, if you&#8217;d like.</p>
<p>If you build and run the project now, you should get the following screen.</p>
<p><img class="alignnone size-full wp-image-7142" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/android-result1.png" alt="android-result.png" width="400" height="1136" /></p>
<p>When you click on the Login button, nothing will happen for now, since we&#8217;ve omitted the logic for <strong>ExecuteLogin</strong> in the <strong>LoginViewModel</strong>.</p>
<h1>Preparing the Employee List Screen</h1>
<p>Now that we&#8217;ve successfully displayed the login screen, we&#8217;re going to further modify this sample to navigate to the list of employees screen after we&#8217;ve clicked on the Login button. Start by modifying the <strong>LoginViewModel</strong> located inside the <strong>XamarinFormsSample</strong> (PCL) project. Use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteLogin</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Validate</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">!</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">HasErrors</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">NavigationService</span><span style="color: #333333;">.</span><span style="color: #333333;">Navigate</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">else</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">MessagePresenter</span><span style="color: #333333;">.</span><span style="color: #333333;">Show</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ErrorMessage</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></p>
<p>Here, we simply invoke the <strong>Validate</strong> method that is built-in to the <strong>EditorViewModelBase</strong>. If there&#8217;s any errors, then it will be displayed using the built-in message presenter that comes with the <strong>ViewModelBase</strong>. If the user has indeed entered any values, then the app will navigate to the employee list screen. Create a new Editable List View Model under the <strong>XamarinFormsSample/ViewModels</strong> folder. Give it a name of <strong>EmployeeListViewModel</strong>.</p>
<p><img class="alignnone size-full wp-image-7158" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-9.34.27-AM.png" alt="Screen Shot 2016-03-21 at 9.34.27 AM.png" width="1626" height="1295" /></p>
<p>Use the following code:</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Collections</span><span style="color: #333333;">.</span><span style="color: #333333;">Generic</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Collections</span><span style="color: #333333;">.</span><span style="color: #333333;">ObjectModel</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Linq</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Model</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditableListViewModelBase</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SourceItems</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Employees</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Title</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Employee</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">List</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Fields</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ObservableCollection</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">_employees</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ObservableCollection</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">Employees</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_employees</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_employees</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">list</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">List</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                        FirstName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Cecil</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        LastName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Kinross</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        ImageUri </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">CecilKinross</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">}</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                        FirstName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">William</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        LastName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Hall</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        ImageUri </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">WilliamHall</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">}</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                        FirstName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Robert</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        LastName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Spall</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        ImageUri </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">RobertSpall</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">}</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                        FirstName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Ernest</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        LastName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Smith</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        ImageUri </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ErnestSmith</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">}</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                        FirstName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Paul</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        LastName </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Triquet</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                        ImageUri </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">PaulTriquet</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">                </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">counter</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">1</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;"> employee </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #333333;">list</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">employee</span><span style="color: #333333;">.</span><span style="color: #333333;">Twitter</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@fake</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">+</span><span style="color: #333333;"> </span><span style="color: #333333;">counter</span><span style="color: #333333;">++;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">_employees</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ObservableCollection</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">&gt;(</span><span style="color: #333333;">list</span><span style="color: #333333;">.</span><span style="color: #333333;">OrderBy</span><span style="color: #333333;">(</span><span style="color: #333333;">e</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">e</span><span style="color: #333333;">.</span><span style="color: #333333;">LastName</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_employees</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>Remember the <strong>Employees</strong> property code we&#8217;ve copied from the deleted App.cs? Now it&#8217;s the time to use the code. In this ViewModel, we simply populate the list of employees to the <strong>SourceItems</strong> property of the <strong>EmployeeListViewModel </strong>and set the initial <strong>Title</strong> for the <strong>EmployeeListViewModel</strong>. Next, let&#8217;s prepare the <strong>EmployeeListFragment</strong>. Create a new Crosslight Android Material List Fragment inside <strong>XamarinFormsSample.Android/Fragments</strong> folder and give it a name of <strong>EmployeeListFragment</strong>.</p>
<p><img class="alignnone size-full wp-image-7172" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-9.54.55-AM.png" alt="Screen Shot 2016-03-21 at 9.54.55 AM.png" width="1657" height="1241" /></p>
<p>Use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">.</span><span style="color: #333333;">ComponentModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Graphics</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Graphics</span><span style="color: #333333;">.</span><span style="color: #333333;">Drawables</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">BindingProviders</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Fragments</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #c44c57;">EmployeeListBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListFragment</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">RecyclerViewFragment</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListFragment</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListFragment</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">JniHandleOwnership</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> Gets the layout identifier of list item.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">value</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> The list item layout identifier.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">value</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">ItemLayoutId</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Layout</span><span style="color: #333333;">.</span><span style="color: #c44c57;">item_layout</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;">To</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">learn</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">more</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">how</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">configure</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">this</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">template</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;">see</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">http</span><span style="font-style: italic; color: #888888;">:</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">developer</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">intersoftsolutions</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">com</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">display</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">crosslight</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">Using</span><span style="font-style: italic; color: #888888;">+</span><span style="font-style: italic; color: #888888;">Material</span><span style="font-style: italic; color: #888888;">+</span><span style="font-style: italic; color: #888888;">Recycler</span><span style="font-style: italic; color: #888888;">+</span><span style="font-style: italic; color: #888888;">View</span><span style="font-style: italic; color: #888888;">+Fragment</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ImageLoaderSettings</span><span style="color: #333333;">.</span><span style="color: #333333;">AnimateOnLoad</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Appearance</span><span style="color: #333333;">.</span><span style="color: #333333;">Background</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ColorDrawable</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Color</span><span style="color: #333333;">.</span><span style="color: #333333;">WhiteSmoke</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;">Recycler</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">View</span><span style="font-style: italic; color: #888888;"> configuration</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">InteractionMode</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ListViewInteraction</span><span style="color: #333333;">.</span><span style="color: #333333;">Navigation</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SourceSharedElementIds</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Id</span><span style="color: #333333;">.</span><span style="color: #c44c57;">Icon</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>The list view is pretty simple, it only contains 2 default constructors needed for Fragment initialization, then we provide the item layout to be used by providing the item_layout as ID (which we&#8217;ll create in just a moment), then in the <strong>Initialize</strong> method, we initialized several settings, such as <strong>ImageLoaderSettings</strong> to animate when it loads, then set the Fragment background to the <strong>Color.WhiteSmoke</strong> color. Then we configure the <strong>InteractionMode</strong> of the Fragment to navigate upon item click. Lastly, we specified the shared element transition to transition from the ImageView with id of Icon to the FormFragment (which we&#8217;ll create after the Employee List screen).</p>
<p>Create a new Android layout file inside<strong> XamarinFormsSample.Android/Resources/layout</strong> folder and give it a name of <strong>item_layout</strong>.</p>
<p><img class="alignnone size-full wp-image-7191" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-10.02.27-AM.png" alt="Screen Shot 2016-03-21 at 10.02.27 AM.png" width="1681" height="1310" /></p>
<p>Paste the following code inside the new layout file.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">&lt;?</span><span style="color: #333333;">xml</span><span style="color: #333333;"> </span><span style="color: #333333;">version</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">encoding</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">utf</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">8</span><span style="color: #f57d00;">&#8220;</span><span style="color: #009695;">?&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #3364a4;">intersoft</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">crosslight</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">android</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">v7</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">CardView</span><span style="color: #3364a4;"> </span><span style="color: #333333;">xmlns:app</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">http</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">schemas</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">com</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">apk</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">res</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">auto</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">xmlns:android</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">http</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">schemas</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">com</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">apk</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">res</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:foreground</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">?</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">attr</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">selectableItemBackground</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_marginLeft</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">8dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_marginRight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">8dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_marginBottom</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">8dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">app:cardElevation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">2dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">RelativeLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">80dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ImageView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">72dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">72dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Icon</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_margin</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">4dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_centerVertical</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_toRightOf</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Icon</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_centerVertical</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">vertical</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textAppearance</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">?</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">attr</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">textAppearanceMedium</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">TextLabel</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:ellipsize</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">end</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:singleLine</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textAppearance</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">?</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">attr</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">textAppearanceSmall</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Text2</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:singleLine</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">RelativeLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">intersoft</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">crosslight</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">android</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">v7</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">CardView</span><span style="color: #333333;">&gt;</span></span></p>
<p>Here, we&#8217;re going to use the new CardView to be the item layout for our employee list screen. To wrap up this view, we&#8217;re going to create the <strong>EmployeeListBindingProvider</strong> that will bind the data from the <strong>EmployeeListViewModel</strong> to the <strong>EmployeeListFragment</strong>. Create a new folder inside the <strong>XamarinFormsSample</strong> (PCL) project called <strong>BindingProviders</strong> and place it inside the newly created folder.</p>
<p><img class="alignnone size-full wp-image-7200" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-10.06.09-AM.png" alt="Screen Shot 2016-03-21 at 10.06.09 AM.png" width="1643" height="1295" /></p>
<p>Use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">BindingProviders</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListBindingProvider</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindingProvider</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListBindingProvider</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #3364a4;">ItemBindingDescription</span><span style="color: #333333;"> </span><span style="color: #333333;">itemBinding</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ItemBindingDescription</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                DisplayMemberPath </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">DisplayName</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                DetailMemberPath </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Twitter</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                ImageMemberPath </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ImageUri</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">TableView</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">ItemsSourceProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Items</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">TableView</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">ItemTemplateBindingProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">itemBinding</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">TableView</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">SelectedItemProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">SelectedItem</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindingMode</span><span style="color: #333333;">.</span><span style="color: #333333;">TwoWay</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">this</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">AddBinding</span><span style="font-style: italic; color: #888888;">(</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">TableView</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">BindableProperties</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">DetailNavigationTargetProperty</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">new</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">NavigationTarget</span><span style="font-style: italic; color: #888888;">(</span><span style="font-style: italic; color: #888888;">typeof</span><span style="font-style: italic; color: #888888;">(</span><span style="font-style: italic; color: #888888;">EmployeeEditorViewModel</span><span style="font-style: italic; color: #888888;">)</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">NavigationMode</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Push</span><span style="font-style: italic; color: #888888;">)</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">true</span><span style="font-style: italic; color: #888888;">)</span><span style="font-style: italic; color: #888888;">;</span><br />
<span style="color: #333333;">            </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>In the <strong>EmployeeListBindingProvider</strong>, we did several things:</p>
<ul>
<li>Bound the <strong>ItemsSource</strong> for the <strong>RecyclerView</strong> with the Items property from the <strong>ViewModel</strong>.</li>
<li>Bound the <strong>ItemTemplateBinding</strong> for the RecyclerView to display the specified <strong>ItemBindingDescription</strong>.</li>
<li>Bound the <strong>SelectedItem</strong> of the <strong>RecyclerView</strong> to the <strong>SelectedItem</strong> property in the <strong>ViewModel</strong>.</li>
<li>Bound the <strong>DetailNavigationTarget</strong> of the <strong>RecyclerView</strong> to use which <strong>ViewModel</strong> when navigation is performed, and what mode of the navigation is used. (which is commented for now, for the sake compilation purposes).</li>
</ul>
<p>Let&#8217;s build and run this project to see how it looks like.</p>
<p><img class="alignnone size-full wp-image-7215" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/android-employee-list.png" alt="android-employee-list.png" width="400" height="1136" /></p>
<p>Phew. We&#8217;re almost there. For Android, we only have 1 screen left, which is the editor view. Let&#8217;s proceed.</p>
<h1>Preparing the Employee Editor Screen</h1>
<p>In this section, we&#8217;re going to use the Crosslight Form Builder capabilities to display our form. Begin by creating a new folder inside the <strong>XamarinFormsSample</strong> (PCL) and call it <strong>Forms</strong>. Inside the folder, create a new empty class and name it <strong>Employee.FormMetadata.cs</strong>.</p>
<p><img class="alignnone size-full wp-image-7222" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/forms.png" alt="forms.png" width="250" height="340" /></p>
<p>Replace the contents of the file with the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Forms</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Model</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">FormMetadataType</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">.</span><span style="color: #3364a4;">FormMetadata</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Form</span><span style="color: #333333;">(</span><span style="color: #333333;">Title </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">{</span><span style="color: #f57d00;">FormState</span><span style="color: #f57d00;">}</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Employee</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FormMetadata</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Section</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ImageSection</span><span style="color: #333333;"> </span><span style="color: #333333;">ImageSection</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Section</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #3364a4;">GeneralSection</span><span style="color: #333333;"> </span><span style="color: #333333;">GeneralSection</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Section</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ButtonSection</span><span style="color: #333333;"> </span><span style="color: #333333;">ButtonSection</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ImageSection</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Editor</span><span style="color: #333333;">(</span><span style="color: #333333;">EditorType</span><span style="color: #333333;">.</span><span style="color: #333333;">Image</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Layout</span><span style="color: #333333;">(</span><span style="color: #333333;">Style </span><span style="color: #333333;">=</span><span style="color: #333333;"> LayoutStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">DetailOnly</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Image</span><span style="color: #333333;">(</span><span style="color: #333333;">Height </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">250</span><span style="color: #333333;">,</span><span style="color: #333333;"> HorizontalAlignment </span><span style="color: #333333;">=</span><span style="color: #333333;"> ControlHorizontalAlignment</span><span style="color: #333333;">.</span><span style="color: #333333;">Center</span><span style="color: #333333;">,</span><span style="color: #333333;"> ScaleMode </span><span style="color: #333333;">=</span><span style="color: #333333;"> ImageScaleMode</span><span style="color: #333333;">.</span><span style="color: #333333;">ScaleAspectFit</span><span style="color: #333333;">,</span><span style="color: #333333;"> Padding </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">6</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Editable</span><span style="color: #333333;">(</span><span style="color: #009695;">false</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">ImageUri</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">GeneralSection</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">StringInput</span><span style="color: #333333;">(</span><span style="color: #333333;">Placeholder </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">First</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Name</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Display</span><span style="color: #333333;">(</span><span style="color: #333333;">Caption </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">First</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Name</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">FirstName</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">StringInput</span><span style="color: #333333;">(</span><span style="color: #333333;">Placeholder </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Last</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Name</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Display</span><span style="color: #333333;">(</span><span style="color: #333333;">Caption </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Last</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Name</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">LastName</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">StringInput</span><span style="color: #333333;">(</span><span style="color: #333333;">Placeholder </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Twitter</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Display</span><span style="color: #333333;">(</span><span style="color: #333333;">Caption </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Twitter</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">static</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">Twitter</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ButtonSection</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Editor</span><span style="color: #333333;">(</span><span style="color: #333333;">EditorType</span><span style="color: #333333;">.</span><span style="color: #333333;">Button</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Binding</span><span style="color: #333333;">(</span><span style="color: #333333;">Path </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">DeleteCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> SourceType </span><span style="color: #333333;">=</span><span style="color: #333333;"> BindingSourceType</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModel</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">[</span><span style="color: #333333;">Button</span><span style="color: #333333;">(</span><span style="color: #333333;">Title </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Delete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> TextColor </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">#</span><span style="color: #f57d00;">FFFF0000</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> Style </span><span style="color: #333333;">=</span><span style="color: #333333;"> ButtonStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">Simple</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">ShowMessageButton</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>Let&#8217;s take this code from the top. We&#8217;ve created a <strong>partial</strong> class from the <strong>Employee</strong> model. Form Builder is all about attributes, whether it&#8217;s in the class level or property level. In the class definition, the <strong>FormAttribute</strong> is used to indicate that this is a Crosslight Form Builder metadata, and which class used as the real form metadata.</p>
<p>In this example, the inner <strong>FormMetadata</strong> class is used. Then, we have 3 sections, which will be inner classes as well, the three sections are: <strong>ImageSection</strong>, <strong>GeneralSection</strong> and <strong>ButtonSection</strong>. Then in each section, we define each properties that will be rendered for the form. It is highly recommended to use the same name as the original properties contained in the Model, or else, you would have to specify the <strong>BindingAttribute</strong> that will be used for the property, as shown in the last property in the <strong>ButtonSection</strong>.</p>
<p>Now that we&#8217;ve prepared the Form Metadata, let&#8217;s proceed by creating the FormFragment. Create a new <strong>Crosslight Android Material Form Fragment</strong> inside the <strong>Fragments</strong> folder and call it <strong>EmployeeFormFragment</strong>.</p>
<p><img class="alignnone size-full wp-image-7228" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-10.42.08-AM1.png" alt="Screen Shot 2016-03-21 at 10.42.08 AM.png" width="1689" height="1305" /></p>
<p>&nbsp;</p>
<p>Replace the contents of the file with the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Fragments</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeFormFragment</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FormFragment</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">EmployeeEditorViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeFormFragment</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeFormFragment</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">JniHandleOwnership</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">Overrides</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">of</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">FormFragment</span><span style="color: #c12dac;">&lt;</span><span style="color: #c12dac;">EmployeeEditorViewModel</span><span style="color: #c12dac;">&gt;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SharedImageIndex</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">0</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBarItem</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BarItem</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">SaveButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CommandItemType</span><span style="color: #333333;">.</span><span style="color: #333333;">Done</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>As you can see, the <strong>EmployeeFormFragment</strong> contains nothing except for the 2 default constructors, and very minimal definition for the overridden <strong>Initialize</strong> method. Here, we specified the SharedImageIndex which will be needed for shared element transition and also added a <strong>BarItem</strong> with the ID <strong>SaveButton</strong>. Next, we&#8217;ll prepare the ViewModel for this Form Builder. Create a new <strong>Crosslight Editor View Model</strong> inside the <strong>XamarinFormsSample/ViewModels</strong> folder and call it <strong>EmployeeEditorViewModel</strong>.</p>
<p><img class="alignnone size-full wp-image-7229" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-10.47.41-AM.png" alt="Screen Shot 2016-03-21 at 10.47.41 AM.png" width="1711" height="1307" /></p>
<p>Then use the following code for the file.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Input</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Model</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeEditorViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditorViewModelBase</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeEditorViewModel</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">DeleteCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;">(</span><span style="color: #333333;">ExecuteDelete</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">DeleteCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">get</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #009695;">set</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">ParentViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">get</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #009695;">set</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteDelete</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ParentViewModel</span><span style="color: #333333;">.</span><span style="color: #333333;">SourceItems</span><span style="color: #333333;">.</span><span style="color: #333333;">Remove</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><span style="color: #333333;">   </span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">NavigationService</span><span style="color: #333333;">.</span><span style="color: #333333;">Close</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">Overrides</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">of</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">EditorViewModelBase</span><span style="color: #c12dac;">&lt;</span><span style="color: #c12dac;">Employee</span><span style="color: #c12dac;">&gt;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteSave</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">ExecuteSave</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;">Needed</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">in</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">iOS</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">notify</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">that</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">item</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">has</span><span style="font-style: italic; color: #888888;"> changed</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnDataChanged</span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Navigated</span><span style="color: #333333;">(</span><span style="color: #333333;">Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #3364a4;">NavigatedParameter</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">Navigated</span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">employeeListViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">.</span><span style="color: #333333;">Sender</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">employeeListViewModel</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ParentViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">employeeListViewModel</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">.</span><span style="color: #333333;">Data</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Employee</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>In the <strong>Navigated</strong> method of the above <strong>ViewModel</strong>, we simply pass the selected item from the previous ViewModel (<strong>EmployeeListViewModel</strong>) to be used as the <strong>Item</strong> for the Form. Here, we also prepared the <strong>Save</strong> and <strong>Delete</strong> methods that will be used for the form.</p>
<p>Lastly, let&#8217;s create the <strong>EmployeeFormBindingProvider</strong> inside the <strong>XamarinFormsSample/BindingProviders</strong> folder. Then use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">BindingProviders</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeFormBindingProvider</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindingProvider</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeFormBindingProvider</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">SaveButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">SaveCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>Here, we simply bound the BarItem to the <strong>SaveCommand</strong> property in the ViewModel. And before we forgot, uncomment the commented line in the <strong>EmployeeListBindingProvider</strong>. Then build and run your project to see it in action.</p>
<p><img class="alignnone size-full wp-image-7231" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/android-form-fragment.png" alt="android-form-fragment.png" width="400" height="1136" /></p>
<p>When you navigate to the Form Fragment, notice that the shared element transition effect is applied automatically. We&#8217;ve finished the Android app. Now let&#8217;s move on to the iOS project.</p>
<h1>Bootstrapping the iOS Project</h1>
<p>Similar to the Android project, the iOS project also need to be re-bootstrapped since it also comes from Xamarin.Forms. First, change the debug configuration to Debug | iPhone Simulator so you can run the iOS project.</p>
<p><img class="alignnone size-full wp-image-7244" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/debug-iphone.png" alt="debug-iphone.png" width="400" height="628" /></p>
<p>Let&#8217;s remove the unnecessary Xamarin.Forms references in iOS project.</p>
<p><img class="alignnone size-full wp-image-7247" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-forms-ios.png" alt="xamarin-forms-ios.png" width="400" height="582" /></p>
<p>Next, we have to migrate the sample to use the new iOS.Unified API. To do this, select the project, and select <strong>Project</strong>, <strong>Migrate to Xamarin.iOS Unified API</strong>.</p>
<p><img class="alignnone size-full wp-image-7254" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-ios-unified-api.png" alt="xamarin-ios-unified-api.png" width="1518" height="1078" /></p>
<p>Then install Crosslight.iOS using NuGet by running the following command (if you&#8217;re on Mac Xamarin Studio) with the iOS project selected.</p>
<p>Install-Package Intersoft.Crosslight</p>
<p><img class="alignnone size-full wp-image-7259" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/install-ios-crosslight.png" alt="install-ios-crosslight.png" width="1366" height="236" /></p>
<p>Ensure that the packages are installed correctly by inspecting the <strong>References</strong> folder.</p>
<p><img class="alignnone size-full wp-image-7263" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/ios-references.png" alt="ios-references.png" width="250" height="258" /></p>
<p>Next, open <strong>AppDelegate.cs</strong> and replace the contents as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> IntersoftCore </span><span style="color: #333333;">=</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Foundation</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> UIKit</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">The</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">UIApplicationDelegate</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">for</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">application</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">This</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">class</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">is</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">responsible</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">for</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">launching</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">User</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Interface</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">of</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">application</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">as</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">well</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">as</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">listening</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">(</span><span style="font-style: italic; color: #888888;">and</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">optionally</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">responding</span><span style="font-style: italic; color: #888888;">)</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> </span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">application</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">events</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">iOS</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Register</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AppDelegate</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppDelegate</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> IntersoftCore</span><span style="color: #333333;">.</span><span style="color: #3364a4;">UIApplicationDelegate</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Wraps the content view controller into the root view controller.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">contentViewController</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">Content view controller.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The root view controller.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">WrapRootViewController</span><span style="color: #333333;">(</span><span style="color: #3364a4;">UIViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">contentViewController</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">contentViewController</span><span style="color: #333333;"> </span><span style="color: #009695;">is</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UISplitViewController</span><span style="color: #333333;"> || </span><span style="color: #333333;">contentViewController</span><span style="color: #333333;"> </span><span style="color: #009695;">is</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UITabBarController</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">contentViewController</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UINavigationController</span><span style="color: #333333;">(</span><span style="color: #333333;">contentViewController</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This is needed for Crosslight.iOS to create the navigation controllers automatically when performing navigation between ViewModels. Then, create a new folder at the root of the iOS project called <strong>Infrastructure</strong>, and create a new empty class with the name of <strong>AppInitializer.cs</strong>.</p>
<p><img class="alignnone size-full wp-image-7269" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/xamarin-ios-infrastructure.png" alt="xamarin-ios-infrastructure.png" width="250" height="536" /></p>
<p>Replace the contents of the file as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Infrastructure</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     iOS&#8217;s application initializer.</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">seealso</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cref</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">Intersoft</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">Crosslight</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">IApplicationInitializer</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">sealed</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppInitializer</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IApplicationInitializer</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">Implementation</span><span style="color: #c12dac;"> </span><span style="color: #c12dac;">of</span><span style="color: #c12dac;"> IApplicationInitializer</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Gets the application service based on the current context.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">context</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The context of the application.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     The application service.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">returns</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IApplicationService</span><span style="color: #333333;"> </span><span style="color: #333333;">GetApplicationService</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationContext</span><span style="color: #333333;"> </span><span style="color: #333333;">context</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CrosslightAppAppService</span><span style="color: #333333;">(</span><span style="color: #333333;">context</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes and prepares the application for launch.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">appHost</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The application host.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">InitializeApplication</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationHost</span><span style="color: #333333;"> </span><span style="color: #333333;">appHost</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes the components required for the application to run properly.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">appHost</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The application host.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">InitializeComponents</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationHost</span><span style="color: #333333;"> </span><span style="color: #333333;">appHost</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;">     Initializes the services for the application to start properly.</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">summary</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="font-style: italic; color: #888888;">///</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">name</span><span style="font-style: italic; color: #888888;">=</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">appHost</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">&gt;</span><span style="font-style: italic; color: #888888;">The application host.</span><span style="font-style: italic; color: #888888;">&lt;</span><span style="font-style: italic; color: #888888;">/</span><span style="font-style: italic; color: #888888;">param</span><span style="font-style: italic; color: #888888;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">InitializeServices</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IApplicationHost</span><span style="color: #333333;"> </span><span style="color: #333333;">appHost</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>Similar to Android, this is the application initializer for iOS, where you can register custom view components, services, iOS views, and more. However, in this tutorial, we won&#8217;t register any additional services. Now, if you try to build the project, you should be able to build it successfully. Great, let&#8217;s create the ViewControllers for iOS. Start by creating a new folder called <strong>ViewControllers. </strong>Then create a new ViewController called <strong>LoginViewController</strong>.</p>
<p><img class="alignnone size-full wp-image-7288" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-2.12.24-PM.png" alt="Screen Shot 2016-03-21 at 2.12.24 PM.png" width="1663" height="1301" /></p>
<p>Your current folder structure should look like this.</p>
<p><img class="alignnone size-medium wp-image-7290" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/LoginViewController-186x300.png" alt="LoginViewController" width="186" height="300" /></p>
<p>Replace the contents as follows.</p>
<p><span style="font-family: Menlo;"> <span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Drawing</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Foundation</span><span style="color: #333333;">;</span></span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Register</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">EmployeeFormViewController</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeFormViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIFormViewController</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">EmployeeEditorViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><span style="color: #333333;">   </span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>As you can see, in the <strong>LoginViewController</strong> contains nothing. Before you can run the project, open up the iOS project options by double-clicking on the iOS project, then in the <strong>iOS Build</strong> menu, ensure that the Supported architectures for the <strong>Debug | iPhone Simulator</strong> configuration supports the <strong>64-bit</strong> emulator. <img class="alignnone size-full wp-image-7316" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-2.45.44-PM.png" alt="Screen Shot 2016-03-21 at 2.45.44 PM.png" width="1907" height="1507" /></p>
<p>Then try to run the project to the iOS Simulator. You should get the following result.</p>
<p><img class="alignnone size-full wp-image-7317" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/iOS-Login.png" alt="iOS-Login.png" width="400" height="1136" /></p>
<p>Okay, seems our login screen has worked well. Now let&#8217;s move on to creating the rest of the views. This will be a breeze. Proceed by creating a new <strong>Table ViewController</strong> inside the <strong>ViewControllers</strong> folder. Name it <strong>EmployeeListViewController</strong>.</p>
<p><img class="alignnone size-full wp-image-7318" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-3.24.23-PM.png" alt="Screen Shot 2016-03-21 at 3.24.23 PM.png" width="1713" height="1309" /></p>
<p>Then use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">BindingProviders</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Foundation</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Drawing</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Register</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">EmployeeListViewController</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">EmployeeListBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EmployeeListViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UITableViewController</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">EmployeeListViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ImageSettings</span><span style="color: #333333;"> </span><span style="color: #333333;">CellImageSettings</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ImageSettings</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    ImageSize </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SizeF</span><span style="color: #333333;">(</span><span style="color: #f57d00;">36</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">36</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">TableViewCellStyle</span><span style="color: #333333;"> </span><span style="color: #333333;">CellStyle</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">TableViewCellStyle</span><span style="color: #333333;">.</span><span style="color: #333333;">Subtitle</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BasicImageLoaderSettings</span><span style="color: #333333;"> </span><span style="color: #333333;">ImageLoaderSettings</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BasicImageLoaderSettings</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    AnimateOnLoad </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    CacheExpirationPolicy </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CacheExpirationPolicy</span><span style="color: #333333;">.</span><span style="color: #333333;">AutoDetect</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #3364a4;">TableViewInteraction</span><span style="color: #333333;"> </span><span style="color: #333333;">InteractionMode</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">TableViewInteraction</span><span style="color: #333333;">.</span><span style="color: #333333;">Navigation</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>Since this ViewController does not require any initialization from the Storyboard, then the constructor is not needed. Here, we&#8217;ve configured several properties, such as the <strong>CellImageSettings</strong>, <strong>CellStyle</strong>, <strong>ImageLoaderSettings</strong> and <strong>InteractionMode</strong>. Let&#8217;s create our last ViewController, which is the EmployeeFormViewController.</p>
<p><img class="alignnone size-full wp-image-7320" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-21-at-3.28.42-PM.png" alt="Screen Shot 2016-03-21 at 3.28.42 PM.png" width="1686" height="1301" /></p>
<p>Then use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">Core</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">.</span><span style="color: #333333;">Drawing</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Foundation</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinFormsSample</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #333333;">Register</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">EmployeeFormViewController</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> EmployeeFormViewController </span><span style="color: #333333;">:</span><span style="color: #333333;"> UIFormViewController</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">EmployeeEditorViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> DetermineNavigationMode</span><span style="color: #333333;">(</span><span style="color: #333333;">NavigationParameter parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">GetService</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">IApplicationService</span><span style="color: #333333;">&gt;()</span><span style="color: #333333;">.</span><span style="color: #333333;">GetContext</span><span style="color: #333333;">()</span><span style="color: #333333;">.</span><span style="color: #333333;">Device</span><span style="color: #333333;">.</span><span style="color: #333333;">Kind </span><span style="color: #333333;">==</span><span style="color: #333333;"> DeviceKind</span><span style="color: #333333;">.</span><span style="color: #333333;">Tablet</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">     </span><span style="color: #3364a4;">        </span><span style="color: #333333;">   </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Only</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">customize</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">navigation</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">mode</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">for</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">editing</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">(</span><span style="font-style: italic; color: #888888;">default</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">navigation</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">command</span><span style="font-style: italic; color: #888888;">)</span><br />
<span style="color: #333333;">     </span><span style="color: #3364a4;">           if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #c44c57;">.CommandId ==</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    parameter</span><span style="color: #333333;">.</span><span style="color: #333333;">PreferPopover </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    parameter</span><span style="color: #333333;">.</span><span style="color: #333333;">EnsureNavigationContext </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>The EmployeeFormViewController is pretty much empty. The DetermineNavigationMode helps to determine whether the app is run from an iPhone or an iPad, and which container should be returned upon navigation. It seems that the iOS app is ready. Let&#8217;s try to give it a run.</p>
<p><img class="alignnone size-full wp-image-7321" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/ios-views.png" alt="ios-views.png" width="1366" height="1136" /></p>
<p>If you notice, our effort to create the iOS app is much smaller compared to the Android version. This is the power of Crosslight. You an easily reuse 100% of the UI logic for iOS and Android platform, allowing developers to accomplish more in less time.</p>
<h1>Samples</h1>
<p>You can obtain the finished sample <a href="http://git.intersoftsolutions.com/projects/CT/repos/crosslightxamarinformsbuilder/browse" target="_blank">here</a>. Simply restore the NuGet packages and hit Run to run the sample properly. Should have any questions, feel free to leave a comment down below or initiate a <a href="http://www.intersoftsolutions.com/#livechat" target="_blank">live chat</a> session with us directly from our website.</p>
<h1>Wrapping Up</h1>
<p>In this tutorial, you have learnt how to migrate a Xamarin Form app to Crosslight which is pretty straightforward. Leveraging MVVM pattern, you have learnt the Crosslight fundamentals, particularly the <em>binding providers</em>, <em>ViewModels</em>, <em>Form Metadata</em>, and <em>Views</em>.</p>
<p>Along the way, you might be interested in several topics, such as the Form Builder, or working with the Storyboard, nonetheless, I highly recommend you to go through each of these topics to quench your thirst:</p>
<ul>
<li><a href="http://developer.intersoftsolutions.com/display/crosslight/Building+Rich+Data+Entry+Form" target="_blank">Building Rich Data Entry Form</a>
<ul>
<li>If you&#8217;d like to get started with the Form Builder, I highly recommend you to look at the two-part blogpost series I wrote up: <a href="http://blog.intersoftsolutions.com/2015/11/getting-started-with-crosslight-form-builder/" target="_blank">Getting Started with Crosslight Form Builder</a> and <a href="http://blog.intersoftsolutions.com/2015/11/extending-crosslight-form-builder-2/" target="_blank">Extending Crosslight Form Builder</a>.</li>
</ul>
</li>
<li><a href="http://developer.intersoftsolutions.com/display/crosslight/Working+with+iOS+Universal+Storyboards" target="_blank">Working with iOS Universal Storyboards</a></li>
<li><a href="http://developer.intersoftsolutions.com/display/crosslight/Crosslight+Android+Material+Development" target="_blank">Crosslight Android Material Development</a></li>
</ul>
<p>Don&#8217;t hesitate to explore the child pages on the documentation as well, as it contains more detailed information on each particular subject. Hopefully this tutorial helps you on grasping the concepts used in Crosslight development and accelerate in building gorgeous cross-platform apps, without sacrificing any user experiences along the way.</p>
<p>Till next post,<br />
Nicholas Lie</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/03/migrating-from-xamarin-forms-to-crosslight-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating to WebUI Unified Theming</title>
		<link>http://blog.intersoftsolutions.com/2016/03/migrating-to-webui-unified-theming/</link>
		<comments>http://blog.intersoftsolutions.com/2016/03/migrating-to-webui-unified-theming/#comments</comments>
		<pubDate>Tue, 15 Mar 2016 08:42:49 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Getting Started Guide]]></category>
		<category><![CDATA[WebUI]]></category>
		<category><![CDATA[Unified Theming]]></category>
		<category><![CDATA[WebGrid]]></category>
		<category><![CDATA[WebUI Studio]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=6477</guid>
		<description><![CDATA[We&#8217;ve recently released&#160;our new Unified Theming for WebUI, which will dramatically alter the look and feel of your WebUI-powered apps, giving it a fresh, modern look and feel. But, how will you&#160;be able to take advantage of this new feature? In this post, I&#8217;m going [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webgrid-final-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="webgrid-final" style="float:right; margin:0 0 10px 10px;" /><p>We&#8217;ve recently released&nbsp;our new Unified Theming for WebUI, which will dramatically alter the look and feel of your WebUI-powered apps, giving it a fresh, modern look and feel. But, how will you&nbsp;be able to take advantage of this new feature? In this post, I&#8217;m going to show you&nbsp;how convert the <a href="http://live.intersoftsolutions.com/cs/WebGrid/Enterprise.aspx?noframe=1&amp;path=/WebGrid/Top%20Features/Rich%20User%20Interface" target="_blank">WebGrid Enterprise sample</a>&nbsp;to use the new WebUI Unified Theming. At the end of this post, you should&nbsp;have&nbsp;the following result.</p>
<p><img class="alignnone size-full wp-image-6488" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webgrid-unified-theming.png" alt="webgrid-unified-theming.png" width="1958" height="702"></p>
<p>Here&#8217;s a&nbsp;single image of the revamped sample&nbsp;in full Unified Theming glory.</p>
<p><img class="alignnone size-full wp-image-6493" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webgrid.png" alt="webgrid.png" width="1078" height="702"></p>
<p>Ready to begin?</p>
<h1>What You&#8217;ll Need</h1>
<p>Before you begin, you&#8217;ll need to ensure&nbsp;that you have&nbsp;properly installed Visual Studio 2012 or higher and have installed Premier Studio 2016 (or higher). If not, feel free to&nbsp;perform <a href="http://www.intersoftsolutions.com/RequestTrial" target="_blank">Request Trial</a> from our site to get the latest installer. Or, if you&nbsp;have purchased a subscription, you&nbsp;can easily obtain the latest version of the installer by simply <a href="http://www.intersoftsolutions.com/Account" target="_blank">signing in to your account</a>.</p>
<h1>Let&#8217;s Begin.</h1>
<p>In overview, here&#8217;s what we&#8217;re&nbsp;going to accomplish:</p>
<ul>
<li>Create a&nbsp;new Unified Theming project using the new Project Template.</li>
<li>Import&nbsp;the existing&nbsp;WebGrid&#8217;s Enterprise sample (from the old sample) to the new project.</li>
<li>Remove all style-related&nbsp;attributes.</li>
<li>Convert the sample to use the new Unified Theming.</li>
</ul>
<h1>Create New&nbsp;Unified Theming Project</h1>
<p>Open up Visual Studio and create a new Unified Theming project by selecting <strong>Visual C#</strong>,&nbsp;<strong>Intersoft Solutions</strong>,&nbsp;<strong>ASP.NET</strong>,&nbsp;<strong>Intersoft Unified&nbsp;Empty Web Application</strong>, as&nbsp;shown in the illustration below. Let&#8217;s call this project <strong>FirstUnifiedTheming</strong> and hit OK.</p>
<p><img class="alignnone size-full wp-image-6519" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/new-project.png" alt="new-project.png" width="1614" height="1136"></p>
<p>Let&#8217;s import the Enterprise.aspx from the&nbsp;old sample to&nbsp;our project. To do this,&nbsp;right-click on&nbsp;your solution, then choose <strong>Add</strong>,&nbsp;<strong>Existing Item</strong>.</p>
<p><img class="alignnone size-full wp-image-6526" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-existing-item.png" alt="add-existing-item.png" width="1450" height="603"></p>
<p>Navigate to&nbsp;<strong>C:\Program Files (x86)\Intersoft Solutions\Samples\For ASP.NET\ISNet.WebUI.Samples\cs\WebGrid</strong> and&nbsp;select <strong>Enterprise.aspx</strong>. Just select the .aspx file and its code-behind will be automatically added as well.</p>
<p><img class="alignnone size-full wp-image-6531" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/enterprise.png" alt="enterprise.png" width="1538" height="1034"></p>
<p>Now that you have&nbsp;the file imported,&nbsp;we need to convert it so that it will be compatible with Web Application.&nbsp;Select the file, then go to <strong>Project</strong>, then choose <strong>Convert to Web Application</strong> as shown below.</p>
<p><img class="alignnone size-full wp-image-6539" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/convert-to-web-application.png" alt="convert-to-web-application.png" width="1976" height="716"></p>
<h1>Removing Unnecessary Styles</h1>
<p>By default,&nbsp;the&nbsp;Unified&nbsp;Theming project template provides a handy&nbsp;<strong>App.master</strong> file contained in the <strong>Master</strong> folder. So, we can use this master file for our&nbsp;imported sample. Change the&nbsp;<strong>MasterPageFile</strong>&nbsp;for the <strong>Enterprise.aspx</strong> from <strong>./DefaultMaster.master</strong> to <strong>~/Master/App.master.</strong></p>
<p><img class="alignnone size-full wp-image-6549" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/master-page-file.png" alt="master-page-file.png" width="1088" height="155"></p>
<p>Next, search for this file that contains any &#8220;style&#8221; attributes. To do this, press <strong>Ctrl+F</strong> on your keyboard and search for &#8220;<strong>style</strong>&#8221; (without the quotes).</p>
<p>Here&nbsp;are the list of attributes / elements that you have&nbsp;to remove within this file:</p>
<ul>
<li>
<p class="p1"><strong>UseDefaultStyle<span class="s1">=&#8221;True&#8221;</span></strong></p>
</li>
<li>
<p class="p1"><strong>DefaultStyleMode<span class="s1">=&#8221;Elegant&#8221;</span></strong></p>
</li>
<li>
<p class="p1"><strong><span class="s1">&lt;</span><span class="s2">CellStyle</span> HorizontalAlign<span class="s1">=&#8221;Right&#8221;&gt;</span><span class="s1">&lt;/</span><span class="s2">CellStyle</span><span class="s1">&gt;</span></strong></p>
</li>
<li><strong><span class="s1">&lt;</span><span class="s2">CellStyle</span> HorizontalAlign<span class="s1">=&#8221;Center&#8221;&gt;</span><span class="s1">&lt;/</span><span class="s2">CellStyle</span><span class="s1">&gt;</span></strong></li>
</ul>
<p>Note that these&nbsp;are the&nbsp;attributes contained in this file. In your existing project there might&nbsp;be more &#8220;style-related&#8221; attributes that you need to remove.</p>
<p>Next, let&#8217;s fix the&nbsp;code-behind so that&nbsp;this project is compile-able. To do this, open <strong>Enterprise.aspx.cs</strong>, and delete this line.</p>
<p class="p1"><strong><span class="s1">using</span> <span class="s2">Intersoft</span>.SampleFramework.V2009;</strong></p>
<p class="p1">Also remove, the three methods: <strong>WebGrid1_AddRow, WebGrid1_UpdateRow, WebGrid1_DeleteRow</strong>. Then, in <strong>Enterprise.aspx</strong>, remove this line.</p>
<p class="p1"><img class="alignnone size-full wp-image-6716" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/delete-enterprise.png" alt="delete-enterprise.png" width="1823" height="1004"></p>
<p>Since this is a <strong>Web Application</strong> project, not a&nbsp;<strong>Web Site</strong> project, you&#8217;ll need to rebuild it once before you can&nbsp;preview the result in the browser. To rebuild the project, right-click on the project/solution, and hit <strong>Rebuild</strong>.</p>
<p><img class="alignnone size-full wp-image-6587" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/rebuild.png" alt="rebuild.png" width="1278" height="379"></p>
<p>After the rebuild process is done, let&#8217;s try viewing this project in the browser. Right-click on the <strong>Enterprise.aspx</strong> file and choose <strong>View in Browser</strong>.</p>
<p><img class="alignnone size-full wp-image-6591" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/view-in-browser.png" alt="view-in-browser.png" width="1042" height="519"></p>
<p>When you run the project, you&#8217;ll get the following error.</p>
<p><img class="alignnone size-full wp-image-6595" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/isdatasource-error.png" alt="isdatasource-error.png" width="1784" height="1136"></p>
<p>This indicates that the WebGrid was unable to connect with the data source. Let&#8217;s resolve this by <strong>adding the necessary database</strong> file and modifying the <strong>Web.config</strong>&#8216;s connection string.</p>
<h1>Adding the Database</h1>
<p>To make our project&#8217;s file organization neat and less cluttered, let&#8217;s create a new folder called&nbsp;<strong>Common</strong>&nbsp;at the root of the project. Right-click on the project and select <strong>Add</strong>, <strong>New Folder</strong>.</p>
<p><img class="alignnone size-full wp-image-6602" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-folder.png" alt="add-folder.png" width="1457" height="704"></p>
<p>Give it a name of <strong>Common</strong>. Let&#8217;s add the database file used for the project. Right-click on the newly-created <strong>Common</strong> folder and choose <strong>Add</strong>, <strong>Existing Item</strong>.</p>
<p><img class="alignnone size-full wp-image-6606" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-existing-database.png" alt="add-existing-database.png" width="1384" height="436"></p>
<p>Choose the file named <strong>dsEnterprise.xsd</strong> contained in the&nbsp;<strong>C:\Program Files (x86)\Intersoft Solutions\Samples\For ASP.NET\ISNet.WebUI.Samples\cs\WebGrid\App_Code</strong>.</p>
<p><img class="alignnone size-full wp-image-6619" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-dsenterprise.png" alt="add-dsenterprise.png" width="1538" height="1035"></p>
<p>Repeat the process for <strong>AppData</strong> folder. Right-click the AppData folder, choose <strong>Add</strong>, <strong>Existing Item</strong>. Then choose&nbsp;<strong>Northwind.mdb</strong>&nbsp;file contained in&nbsp;<strong>C:\Program Files (x86)\Intersoft Solutions\Samples\For ASP.NET\ISNet.WebUI.Samples\cs\WebGrid\App_Data</strong>.</p>
<p><img class="alignnone size-full wp-image-6610" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-northwind.png" alt="add-northwind.png" width="1538" height="1035"></p>
<p>Next, we need to modify the <strong>SchemaType</strong> and <strong>TypeName</strong> of <strong>ISDataSource</strong> so that it will point to the correct&nbsp;database file. To do this, open the <strong>Enterprise.aspx</strong> file and&nbsp;perform a&nbsp;Replace&nbsp;All for the following string:&nbsp;<strong>SchemaName=&#8221;dsEnterprise&nbsp;</strong>(the unclosed quotes are intentional) to&nbsp;<strong>SchemaName=&#8221;FirstUnifiedTheming.Common.dsEnterprise </strong>(again, the unclosed quotes are intentional).</p>
<p>Repeat the process&nbsp;one more time for the <strong>TypeName</strong>. Search for&nbsp;<strong>TypeName=&#8221;dsEnterprise&nbsp;</strong>and replace it with&nbsp;<strong>TypeName=&#8221;FirstUnifiedTheming.Common.dsEnterprise</strong>. Save the file.</p>
<p>Lastly, let&#8217;s add a connection string in the <strong>Web.config</strong> file for this&nbsp;a new connection the Northwind database. Open up Web.config and add the following connection string to the <strong>ConnectionStrings</strong> node:</p>
<p class="p1">&lt;<span class="s1">add</span> <span class="s2">name</span>=<span class="s3">&#8220;</span>NorthWindConnectionString<span class="s3">&#8220;</span> <span class="s2">connectionString</span>=<span class="s3">&#8220;</span>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\NorthWind.mdb;Persist Security Info=True<span class="s3">&#8220;</span> <span class="s2">providerName</span>=<span class="s3">&#8220;</span>System.Data.OleDb<span class="s3">&#8220;</span>/&gt;</p>
<p class="p1"><img class="alignnone size-full wp-image-6638" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/connection-string.png" alt="connection-string.png" width="1803" height="511"></p>
<h1 class="p1">You&#8217;re Almost There.</h1>
<p>We&#8217;ve&nbsp;roughly finished the migration,&nbsp;but it&#8217;s still&nbsp;missing a few final touches. For now,&nbsp;refresh your browser to see the result.</p>
<p><img class="alignnone size-full wp-image-6644" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webgrid-initial.png" alt="webgrid-initial.png" width="1784" height="1136"></p>
<p>As you can see, the&nbsp;WebGrid&nbsp;is now applied with Unified Theming. But there are are still two issues left:</p>
<ul>
<li>Adjusting the height of the WebGrid</li>
<li>Providing the missing icons.</li>
</ul>
<p>Let&#8217;s address these issues. To adjust the height of the WebGrid, you can easily do so by modifying the <strong>Height</strong> attribute of the WebGrid inside the <strong>Enterprise.aspx</strong> file. Give it a good value, perhaps <strong>90%</strong>.</p>
<p><img class="alignnone size-full wp-image-6651" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webgrid-height.png" alt="webgrid-height.png" width="1596" height="475"></p>
<p>We also need to modify the height of the parent container to 100%. To do this, open up <strong>App.master</strong> inside the&nbsp;<strong>Master</strong> folder and add&nbsp;inline-style for the&nbsp;parent container with height&nbsp;set to 100%.</p>
<p><img class="alignnone size-full wp-image-6680" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/app-master-height.png" alt="app-master-height.png" width="1082" height="881"></p>
<p>Next, let&#8217;s provide the missing image icons. To do this, right click on the <strong>Assets</strong> folder and select <strong>Add</strong>, <strong>New Folder</strong>.</p>
<p><img class="alignnone size-full wp-image-6653" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/add-images-folder.png" alt="add-images-folder.png" width="1501" height="559"></p>
<p>Give it a name of <strong>images</strong>. Add the following&nbsp;images from this folder <strong>C:\Program Files (x86)\Intersoft Solutions\Samples\For ASP.NET\WebUI.Unified.Samples\assets\images</strong>:</p>
<ul>
<li><strong>Customer.svg</strong></li>
<li><strong>order-detail.svg</strong> (rename this file to&nbsp;<strong>order-details.svg</strong>)</li>
<li><strong>orders.svg</strong></li>
<li><strong>shipvia1.svg</strong></li>
<li><strong>shipvia2.svg</strong></li>
<li><strong>shipvia3.svg</strong></li>
</ul>
<p>You should have the following images as follows.</p>
<p><img class="alignnone size-full wp-image-6662" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/images.png" alt="images.png" width="250" height="250"></p>
<p>Lastly,&nbsp;perform a Find and Replace for the following string inside the <strong>Enterprise.aspx</strong> file. Replace <strong>./images</strong> with<strong> ~/assets/images</strong>.</p>
<p><img class="alignnone size-full wp-image-6670" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/find-and-replace-assets.png" alt="find-and-replace-assets.png" width="250" height="222"></p>
<p>Then, another Find and Replace for <strong>.gif</strong> to <strong>.svg</strong>. Save the file, rebuild the project and refresh your browser.</p>
<p><img class="alignnone size-full wp-image-6685" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webgrid-final.png" alt="webgrid-final.png" width="1784" height="1136"></p>
<p>We&#8217;ve successfully set the&nbsp;WebGrid height to fill 90% of the parent container, in which the parent container has been set to 100% height, as well as providing the correct SVG icons for the WebGrid.</p>
<p>One&nbsp;cool thing about&nbsp;the SVG icons are they&#8217;re actually vector icons (SVG is a short form of Scalable Vector Graphics), which will retain its crispiness and hi-res colors when&nbsp;viewed in any devices with varying screens resolutions. To do this, try bumping up the zoom level to 400% or higher.</p>
<p><img class="alignnone size-full wp-image-6691" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/zoom.png" alt="zoom.png" width="1784" height="1136"></p>
<h1>Conclusion</h1>
<p>As you can see, adopting the Unified Theme in your project is quite simple and easy. To learn more about Unified Theming, I highly recommend you to&nbsp;explore the documentation about <a href="http://developer.intersoftsolutions.com/display/WebUI/Unified+Theming" target="_blank">Unified Theming</a>. You can find the link to the finished sample <a href="http://developer.intersoftsolutions.com/download/attachments/24281754/FirstUnifiedTheming.zip?api=v2" target="_blank">here</a>.</p>
<p>In this post, we&#8217;ve learned how to&nbsp;create a&nbsp;Unified Theme project in the&nbsp;shortest and fastest manner using the project templates. In smaller projects, this approach is feasible, but not for larger projects. If you wish to focus solely on migrating your project to Unified Theming, you can&nbsp;follow this documentation: <a href="http://developer.intersoftsolutions.com/display/WebUI/Applying+Unified+Modern+Theme+in+WebUI+Application" target="_blank">Applying Unified Modern Theme in WebUI Application</a>.</p>
<p>You can also find&nbsp;local working samples once you&#8217;ve installed Premier Studio 2016 on your computer. To get started quickly with the local samples, please read my previous&nbsp;<a href="http://blog.intersoftsolutions.com/2016/03/the-all-new-webui-experience-it-yourself/" target="_blank">blog post</a>.</p>
<p>Should you have any questions, feel free to initiate a <a href="http://www.intersoftsolutions.com/#livechat" target="_blank">live chat session with us</a> and our team will get back to you as fast as we can.</p>
<p>Till next post,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/03/migrating-to-webui-unified-theming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating to Crosslight Android Material</title>
		<link>http://blog.intersoftsolutions.com/2016/03/migrating-to-crosslight-android-material/</link>
		<comments>http://blog.intersoftsolutions.com/2016/03/migrating-to-crosslight-android-material/#comments</comments>
		<pubDate>Mon, 14 Mar 2016 11:05:52 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Getting Started Guide]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Android Material]]></category>
		<category><![CDATA[Crosslight 5]]></category>
		<category><![CDATA[Material Design]]></category>
		<category><![CDATA[Mobile Studio 2016]]></category>
		<category><![CDATA[Premier Studio 2016]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=5970</guid>
		<description><![CDATA[In this post, I&#8217;m going to guide you how to migrate your existing Crosslight Android apps to adopt Material Design with the new Crosslight Android Material Library. I&#8217;m going to use the Inventory Tracker sample contained in the old samples repository and convert the project to use the [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/before-and-after-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="before-and-after" style="float:right; margin:0 0 10px 10px;" /><p>In this post, I&#8217;m going to guide you how to migrate your existing Crosslight Android apps to adopt Material Design with the new Crosslight Android Material Library. I&#8217;m going to use the Inventory Tracker sample contained in the old samples repository and convert the project to use the new Android Material. You can get the old sample <a href="http://git.intersoftpt.com/projects/CROS/repos/samples/browse/MyInventory" target="_blank">here</a>. This tutorial should work with Visual Studio as well. However, I&#8217;m using Xamarin Studio on Mac as it is my development preferences.</p>
<p>At the end of the post, you would be able to achieve the result such as shown in the right image below.</p>
<p><img class="alignnone size-full wp-image-6437" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/before-and-after.png" alt="before-and-after.png" width="1181" height="990" /></p>
<h1>Running the Old Sample</h1>
<p>Should you encounter this error when running the old sample:<img class="alignnone size-full wp-image-6034" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-9.03.01-AM.png" alt="Screen Shot 2016-03-11 at 9.03.01 AM.png" width="1441" height="1236" /></p>
<p class="p1"><span class="s1">All you need to do is install the <strong>Crosslight.Xamarin.Android.Support.v4 </strong>NuGet package onto the <strong>MyInventory.Android.Fragments</strong> project.</span></p>
<p class="p1"><img class="alignnone size-full wp-image-6038" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/crosslight-xamarin-android-support-v4.png" alt="crosslight-xamarin-android-support-v4.png" width="1368" height="442" /></p>
<p class="p1">Consult this documentation should you have difficulties in installing the NuGet package: <a href="http://developer.intersoftsolutions.com/display/crosslight/Introduction+to+Crosslight+NuGet+Packages" target="_blank">Introduction to Crosslight NuGet Packages</a>. If everything is okay, you should be able to run the old sample properly.</p>
<p class="p1"><img class="alignnone size-full wp-image-6046" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/my-inventory-old.png" alt="my-inventory-old.png" width="400" height="840" /></p>
<h1 class="p1">Preparing the Project</h1>
<p>Now we&#8217;re ready to convert this project to use the new Crosslight Android Material library. First, let&#8217;s copy the <strong>MyInventory.Android.Fragments</strong> folder and give it a name of <strong>MyInventory.Android.Fragments.Material</strong>.</p>
<p><img class="alignnone size-full wp-image-6052" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-9.34.20-AM.png" alt="Screen Shot 2016-03-11 at 9.34.20 AM.png" width="1832" height="1170" /></p>
<p>Rename the .csproj file to <strong>MyInventory.Android.Fragments.Material.csproj</strong>.</p>
<p><img class="alignnone size-full wp-image-6054" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-9.38.00-AM.png" alt="Screen Shot 2016-03-11 at 9.38.00 AM.png" width="1832" height="1170" /></p>
<p>Open the .csproj file and edit the <strong>ProjectGuid</strong>, generate a new Guid somewhere or simply change any letter from the existing GUID.</p>
<p><img class="alignnone size-full wp-image-6115" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-10.43.52-AM.png" alt="Screen Shot 2016-03-11 at 10.43.52 AM.png" width="1614" height="1042" /></p>
<p>Save this .csproj file and import this new .csproj file into your solution.</p>
<p><img class="alignnone size-full wp-image-6058" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/my-inventory-imported.png" alt="my-inventory-imported.png" width="400" height="436" /></p>
<p>Now you&#8217;re ready to tinker with this project.</p>
<h1>Configuring the Project Options</h1>
<p>First, let&#8217;s configure the project options to comply with Material. To do this, right-click on the project and choose <strong>Options</strong>. Or you can simply double-click the project to go to the Project Options.</p>
<p><img class="alignnone size-full wp-image-6072" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/project-options.png" alt="project-options.png" width="1302" height="932" /></p>
<p>In the dialog that appears, choose the <strong>General</strong> tab and set the <strong>Target Framework</strong> to <strong>Android 5.0 (Lollipop)</strong>.</p>
<p><img class="alignnone size-full wp-image-6077" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-10.17.53-AM.png" alt="Screen Shot 2016-03-11 at 10.17.53 AM.png" width="2169" height="1595" /></p>
<p>Next, choose the <strong>Android Application</strong> tab and edit the Package name to <strong>MyInventory.Android.Material</strong> (add .Material suffix, just to differentiate from the classic Android project). Set the <strong>Minimum Android version</strong> to <strong>Android 4.0.3 (API Level 15)</strong> and the Target Android version to <strong>API 21</strong>. Note: if you don&#8217;t specify the Target Android version explicitly (set it as Automatic), the Material theme won&#8217;t apply perfectly. It looks like a bug either from Xamarin side or Android SDK side. So to be safe, specify the <strong>Target Android version</strong> explicitly for now.</p>
<p><img class="alignnone size-full wp-image-6289" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-2.58.18-PM.png" alt="Screen Shot 2016-03-11 at 2.58.18 PM.png" width="2107" height="1589" /></p>
<p>Later, we&#8217;re going to modify the Application icon to use the new mipmap folders. But now, we&#8217;re good to go.</p>
<h1>Installing NuGet Packages</h1>
<p>Next, we&#8217;re going to install the latest NuGet packages for this project. You&#8217;ll want to install <strong>Intersoft.Crosslight</strong> onto the all of your projects (including the Core project), then install <strong>Intersoft.Crosslight.Android.v7</strong> package to your <strong>MyInventory.Android.Fragments.Material</strong> project. By now, I&#8217;ll assume that you&#8217;ve understood how to install these NuGet packages onto your existing projects. Should you find any troubles in installing the NuGet packages, consult the <a href="http://developer.intersoftsolutions.com/display/crosslight/Introduction+to+Crosslight+NuGet+Packages">docs</a>.</p>
<p>Here&#8217;s a shot when running the install <strong>Intersoft.Crosslight</strong> NuGet command. Note that this command only applies to Xamarin Studio on Mac. On Windows, you would simply use the <strong>Manage NuGet Packages for Solution</strong> menu from Visual Studio and search for the <strong>Intersoft.Crosslight</strong> package.</p>
<p><img class="alignnone size-full wp-image-6104" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/install-intersoft-crosslight1.png" alt="install-intersoft-crosslight.png" width="1380" height="436" /></p>
<p>And here&#8217;s another shot when installing the v7 package.</p>
<p><img class="alignnone size-full wp-image-6117" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/install-intersoft-crosslight-android-v7.png" alt="install-intersoft-crosslight-android-v7.png" width="1390" height="402" /></p>
<p>When you have successfully installed the packages, your project references should change a bit. (if you&#8217;re using Xamarin Studio on Mac)</p>
<p><img class="alignnone size-full wp-image-6121" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/references.png" alt="references.png" width="1405" height="822" /></p>
<h1>Refactoring the Classes</h1>
<p>Let&#8217;s proceed by refactoring the classes. Move the <strong>MainActivity.cs</strong> inside the Activities folder.</p>
<p><img class="alignnone size-full wp-image-6126" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/move-mainactivity.png" alt="move-mainactivity" width="400" height="852" /></p>
<p>Create a new folder called <strong>Fragments</strong> in the root project.</p>
<p><img class="alignnone size-full wp-image-6129" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/fragments-folder.png" alt="fragments-folder.png" width="300" height="820" /></p>
<p>Move all existing fragments (<strong>InventoryFragment.cs</strong>, <strong>ItemDetailFragment.cs</strong>, <strong>ItemListFragment.cs</strong>) inside the folder. Next, create a new <strong>Crosslight Android Material Activity</strong> using the new item template, and give it a name of <strong>AppActivity</strong>.</p>
<p><img class="alignnone size-full wp-image-6137" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-11.05.32-AM.png" alt="Screen Shot 2016-03-11 at 11.05.32 AM.png" width="1661" height="1294" /></p>
<p>Replace the contents of the <strong>AppActivity</strong> with the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">App</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">ItemListBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Activity</span><span style="color: #333333;">()]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppActivity</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppCompatActivity</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ItemListViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppActivity</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppActivity</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">JniHandleOwnership</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>This will be a replacement for our <strong>ItemListActivity.cs</strong>. This is the main container Activity that will be launched after the splash screen is shown. Note that this class inherits from <strong>AppCompatActivity</strong> and takes in the ItemListViewModel, which corresponds to the <strong>AppService.cs</strong> specified in the <strong>MyInventory.Core/Infrastructure</strong> folder as the root ViewModel. It only contains two constructors, a default empty constructor and another constructor that takes in one <strong>IntPtr</strong> and <strong>JniHandleOwnership</strong> object. This is compulsory for every Activity and Fragment using the new Material library.</p>
<p>In the new Android Material library, developers now only need to focus on creating Fragments instead of Activity-Fragment pairs, as now the Activity will be automatically created as necessary upon screen navigation. Let&#8217;s create new Fragments and modify existing Fragments that will act as the counterpart for our current Activities.</p>
<h1>Preparing ItemListFragment</h1>
<p>First, let&#8217;s edit the ItemListFragment.cs inside the Fragments folder. Replace it with the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Graphics</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Graphics</span><span style="color: #333333;">.</span><span style="color: #333333;">Drawables</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">.</span><span style="color: #333333;">ComponentModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> EditAction </span><span style="color: #333333;">=</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">.</span><span style="color: #333333;">ComponentModels</span><span style="color: #333333;">.</span><span style="color: #3364a4;">EditAction</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">ItemListBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">RegisterNavigation</span><span style="color: #333333;">(</span><span style="color: #3364a4;">DeviceKind</span><span style="color: #333333;">.</span><span style="color: #333333;">Phone</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ItemListFragment</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SearchableRecyclerViewFragment</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ItemListViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ItemListFragment</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ItemListFragment</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">JniHandleOwnership</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">ItemLayoutId</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Layout</span><span style="color: #333333;">.</span><span style="color: #c44c57;">item_layout</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ImageLoaderSettings</span><span style="color: #333333;">.</span><span style="color: #333333;">AnimateOnLoad</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Appearance</span><span style="color: #333333;">.</span><span style="color: #333333;">Background</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ColorDrawable</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Color</span><span style="color: #333333;">.</span><span style="color: #333333;">WhiteSmoke</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ShowGroupSeparator</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">false</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Defines</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">floating</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">action</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">button</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">FloatingActionButtons</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FloatingActionButton</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">AddButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    Position </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FloatingActionButtonPosition</span><span style="color: #333333;">.</span><span style="color: #333333;">BottomRight</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    CommandItemType </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CommandItemType</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    Direction </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FloatingActionButtonDirection</span><span style="color: #333333;">.</span><span style="color: #333333;">Up</span><span style="color: #333333;">,</span><br />
<span style="color: #333333;">                    HideOnScrollUp </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">})</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Defines</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">contextual</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">action</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">            </span><span style="color: #3364a4;">ListContextualToolbarSettings</span><span style="color: #333333;"> </span><span style="color: #333333;">settings</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ContextualToolbarSettings</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ListContextualToolbarSettings</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">settings</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">settings</span><span style="color: #333333;">.</span><span style="color: #333333;">Mode</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ContextualMode</span><span style="color: #333333;">.</span><span style="color: #333333;">Default</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">settings</span><span style="color: #333333;">.</span><span style="color: #333333;">CheckAllEnabled</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">settings</span><span style="color: #333333;">.</span><span style="color: #333333;">CheckAllMargin</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">4</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">settings</span><span style="color: #333333;">.</span><span style="color: #333333;">BarItems</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BarItem</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">DeleteButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Delete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">settings</span><span style="color: #333333;">.</span><span style="color: #333333;">BarItems</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BarItem</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">MarkSoldButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Mark</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">As</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Sold</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Defines</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">editing</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">action</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">swipe</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">gesture</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">EditActions</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditAction</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Sold</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">EditActions</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditAction</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Delete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Recycler</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">View</span><span style="font-style: italic; color: #888888;"> configuration</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">InteractionMode</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ListViewInteraction</span><span style="color: #333333;">.</span><span style="color: #333333;">Navigation</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">EditingOptions</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditingOptions</span><span style="color: #333333;">.</span><span style="color: #333333;">AllowEditing</span><span style="color: #333333;"> | </span><span style="color: #3364a4;">EditingOptions</span><span style="color: #333333;">.</span><span style="color: #333333;">AllowMultipleSelection</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Defines</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">shared</span><span style="font-style: italic; color: #888888;"> elements</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SourceSharedElementIds</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Id</span><span style="color: #333333;">.</span><span style="color: #333333;">Icon</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBarItem</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BarItem</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">SearchButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CommandItemType</span><span style="color: #333333;">.</span><span style="color: #333333;">Search</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">FilterScope</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Name</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">IconId</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Drawable</span><span style="color: #333333;">.</span><span style="color: #c44c57;">ic_toolbar</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>In the code above, we have our 2 constructors as explained earlier, then the ItemLayoutId, which we&#8217;ll create in just a moment, then we specify all the behaviors for that particular Fragment by overriding the <strong>Initialize</strong> method. Here, we specified several things. Let&#8217;s take it from the top.</p>
<p>We specified that the <strong>ImageLoader</strong> component should animate on load for a nice fading effect. We&#8217;ve also set the background of this Fragment by setting it through this.Appearance.Background property. The group separator is hidden. We&#8217;ve also specified a Floating Action Button with the identifier of <strong>AddButton </strong>and several options such as its position, <strong>CommandItemType</strong>, <strong>Direction</strong> and <strong>HideOnScrollUp</strong> behavior. We&#8217;ve also specified the contextual actions, which will be triggered when users long-presses an item. The new swipe gesture is also enabled by specifying the <strong>EditActions</strong>.</p>
<p>The RecyclerView configuration comes next, we&#8217;ve specified how the item should interact when user clicks/presses on an item. The <strong>EditingOptions</strong> is also specified here to allow contextual actions. Then comes the Shared Element Transition that will define which view IDs should be animated upon navigation. The new Fragment also allows to add Toolbar items programmatically by using the <strong>this.AddBarItem</strong> method. The <strong>FilterScope</strong> is specified for the item searching scope, so when user performs search on this Fragment, it will search for the item <strong>Name</strong>. Lastly, we specified which icon should be placed in the upper left hand corner of the Toolbar.</p>
<p>Also take note that ItemListFragment inherits the SearchableRecyclerViewFragment that uses RecyclerView and allows for searching of items. To learn more about the power of Material Fragment and all of its customizable properties, consult this documentation: <a href="http://developer.intersoftsolutions.com/display/crosslight/Using+Material+Fragment" target="_blank">Using Material Fragment</a>.</p>
<p>If you try to run the project now, you&#8217;ll get two errors saying that the <strong>item_layout.axml</strong> is not available and the <strong>ic_toolbar.png</strong> drawable is not available. Let&#8217;s sort this out. Create a new <strong>item_layout.axml</strong> file inside the <strong>Resources/Layout</strong> folder and use the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">&lt;?</span><span style="color: #333333;">xml</span><span style="color: #333333;"> </span><span style="color: #333333;">version</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">encoding</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">utf</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">8</span><span style="color: #f57d00;">&#8220;</span><span style="color: #009695;">?&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #3364a4;">intersoft</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">crosslight</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">android</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">v7</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">CardView</span><span style="color: #3364a4;"> </span><span style="color: #333333;">xmlns:app</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">http</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">schemas</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">com</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">apk</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">res</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">auto</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">xmlns:android</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">http</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">schemas</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">com</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">apk</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">res</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:foreground</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">?</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">attr</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">selectableItemBackground</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_marginLeft</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">8dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_marginRight</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">8dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_marginBottom</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">8dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">app:cardElevation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">2dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">RelativeLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">80dp</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ImageView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">72dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">72dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Icon</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_margin</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">4dp</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_centerVertical</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_toRightOf</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Icon</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center_vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_centerVertical</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">vertical</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textAppearance</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">?</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">attr</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">textAppearanceMedium</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">TextLabel</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:ellipsize</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">end</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:singleLine</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:textAppearance</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">?</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">attr</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">textAppearanceSmall</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">Text2</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:singleLine</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">true</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">RelativeLayout</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">intersoft</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">crosslight</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">android</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">v7</span><span style="color: #3364a4;">.</span><span style="color: #3364a4;">CardView</span><span style="color: #333333;">&gt;</span></span></p>
<p>In the item layout, we&#8217;re going to use the CardView as our item layout. Next, use this new icon (it&#8217;s white) for the Toolbar icon.</p>
<p><img class="alignnone size-full wp-image-6204" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/ic_toolbar.png" alt="ic_toolbar.png" width="48" height="48" /></p>
<p>Save this file inside the Resources/drawable folder and give it a name of <strong>ic_toolbar.png</strong>. A design tip: Since the new Material Design emphasizes on bold colors, it is better and preferred to use a thin icon design for a more beautiful outlook. In this case, the White color is chosen since it blends perfectly with Material colors.</p>
<h1>Cleaning Up Unnecessary Files</h1>
<p>Before we proceed, let&#8217;s delete some unnecessary files. In the <strong>Activities</strong> folder, leave only <strong>AppActivity.cs</strong> and <strong>MainActivity.cs</strong>, and delete all other Activity files as we&#8217;ll recreate the counterpart for these files as we go on.</p>
<p><img class="alignnone size-full wp-image-6219" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/delete-activities.png" alt="delete-activities.png" width="300" height="378" /></p>
<p>In the <strong>Fragments</strong> folder, delete <strong>InventoryFragment.cs</strong>, leaving only <strong>ItemListFragment.cs</strong>.</p>
<p><img class="alignnone size-full wp-image-6236" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/delete-fragments1.png" alt="delete-fragments.png" width="300" height="500" /></p>
<p>In the Resources folder, delete these folders: <strong>color</strong>, <strong>layout-large</strong>, <strong>values-large</strong>. And also delete all other layouts inside the <strong>layout</strong> folder, leaving only <strong>item_layout.axml</strong>.</p>
<p><img class="alignnone size-full wp-image-6229" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/delete-layouts.png" alt="delete-layouts.png" width="300" height="266" /></p>
<p>In the <strong>drawable</strong> folder, delete these highlighted files.</p>
<p><img class="alignnone size-full wp-image-6233" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/delete-drawables.png" alt="delete-drawables.png" width="300" height="580" /></p>
<p>Also, delete unused styles inside the <strong>styles.xml </strong>so your styles look like this.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">&lt;?</span><span style="color: #333333;">xml</span><span style="color: #333333;"> </span><span style="color: #333333;">version</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">encoding</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">utf</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">8</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #009695;">?&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #3364a4;">resources</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">style</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Theme</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">Splash</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">parent</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">Theme</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">item</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">windowBackground</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">@drawable/dark_splash</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">item</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">item</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">windowNoTitle</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">true</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">item</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">style</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">resources</span><span style="color: #333333;">&gt;</span></span></p>
<h1>Using the Material Theme</h1>
<p>To use the Material Theme, open <strong>AndroidManifest.xml</strong> located inside the <strong>Properties</strong> folder and change <strong>android:theme </strong>to use<strong> android:theme=&#8221;@style/Theme.Crosslight.Material.Light&#8221;</strong>.</p>
<p><img class="alignnone size-full wp-image-6245" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-1.24.28-PM.png" alt="Screen Shot 2016-03-11 at 1.24.28 PM.png" width="3104" height="1380" /></p>
<h1>Running the Project</h1>
<p>Let&#8217;s run the project and check out what will happen.</p>
<p><img class="alignnone size-full wp-image-6296" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/material-preliminary1.png" alt="material-preliminary" width="400" height="990" /></p>
<p>At a first glance, it looks fine. The Floating Action Button is showing, the Toolbar now uses the new Material Toolbar. However, this screen is still missing the title in the Toolbar. Let&#8217;s apply the Title for the Toolbar.</p>
<h1>Applying Title in the ViewModel</h1>
<p>In Crosslight 5, we&#8217;ve provided a simpler API to set the Title for a View that works across iOS and Android. To do this, simply open up <strong>ItemListViewModel.cs</strong> located inside the <strong>MyInventory.Core/ViewModels</strong> folder. Simply add <strong>this.Title = &#8220;My Inventory&#8221;</strong> in the ViewModel&#8217;s constructor.</p>
<p><img class="alignnone size-full wp-image-6268" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/title.png" alt="title.png" width="1288" height="488" /></p>
<h1>Customizing Material Colors</h1>
<p>By default, Crosslight Android Material uses the Blue theme color for the Material Design color palette. You can easily customize each UI element color by overriding the key values for the Material colors, as defined in the <a href="http://developer.android.com/training/material/theme.html" target="_blank">Android Training docs</a>. For example, let&#8217;s replace the Blue color palette with the Deep Purple palette. Replace <strong>colors.xml</strong> with the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">&lt;?</span><span style="color: #333333;">xml</span><span style="color: #333333;"> </span><span style="color: #333333;">version</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">encoding</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">utf</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">8</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #009695;">?&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #3364a4;">resources</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">primary</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#673AB7</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">accent</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#7E57C2</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">navigation_bar</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#9575CD</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">primary_dark</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#7E57C2</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">window_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#eaeaea</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">action_menu_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#673AB7</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">window_dark_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#000000</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">window_light_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#ffffff</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span></span></p>
<p><span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">action_menu_foreground</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#ffffff</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">button_foreground</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#ffffff</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span></p>
<p><span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">nav_end_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#4527A0</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">nav_center_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#673AB7</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">nav_start_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#7E57C2</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span></p>
<p><span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">nav_header_title_foreground</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#ffffff</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">nav_header_subtitle_foreground</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#ffffff</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span></p>
<p><span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">progress_dialog_background</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#673AB7</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">progress_text_color</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#ffffff</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">progress_bar_color</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#ffffff</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">progress_text_color_inverse</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#7E57C2</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">  </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">color</span><span style="color: #3364a4;"> </span><span style="color: #333333;">name</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">progress_bar_color_inverse</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">#7E57C2</span><span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">color</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">resources</span><span style="color: #333333;">&gt;</span></p>
<p>By default, we&#8217;ve followed the Material Color guidelines from Google as defined in the <a href="https://www.google.com/design/spec/style/color.html" target="_blank">Google documentation</a>. Clean and rebuild your project, then re-run the project. If you skip rebuilding, sometimes your resources will still be cached and the colors will not apply properly. Your project now should look like the following illustration.</p>
<p><img class="alignnone size-full wp-image-6312" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/material-item-list-view.png" alt="material-item-list-view.png" width="400" height="990" /></p>
<p>It seems our item list screen is roughly finished for now.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/qC643K8Tcbc?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>As you can see in the video, the EditActions for Sold and Delete swipe gesture still don&#8217;t work properly for now. Let&#8217;s make it work by modifying the <strong>ItemListViewModel</strong>.</p>
<h1>Enabling Swipe Gestures</h1>
<p>As you&#8217;ve seen previously, to enable the swipe gesture for the RecyclerView can be simply done by overriding the <strong>Initialize</strong> method and adding the <strong>EditActions</strong> for the Fragment.</p>
<p><span style="font-family: Menlo;"> <span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Defines</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">editing</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">action</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">swipe</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">gesture</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">EditActions</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditAction</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Sold</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">EditActions</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditAction</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Delete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span></span></p>
<p>Modify the <strong>ItemListViewModel</strong> inside the <strong>MyInventory.Core/ViewModels</strong> folder and override the <strong>ExecuteEditAction</strong> method.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteEditAction</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #3364a4;">EditingParameter</span><span style="color: #333333;"> </span><span style="color: #333333;">editingParameter</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">EditingParameter</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">editingParameter</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #3364a4;">Item</span><span style="color: #333333;"> </span><span style="color: #333333;">item</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">editingParameter</span><span style="color: #333333;">.</span><span style="color: #333333;">Item</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Item</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">item</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">editAction</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">editingParameter</span><span style="color: #333333;">.</span><span style="color: #333333;">CustomAction</span><span style="color: #333333;">.</span><span style="color: #333333;">ToLowerInvariant</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">switch</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">editAction</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">case</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">sold</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">:</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ExecuteMarkSold</span><span style="color: #333333;">(</span><span style="color: #333333;">item</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">break</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">case</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">delete</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">:</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ExecuteDelete</span><span style="color: #333333;">(</span><span style="color: #333333;">item</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">break</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #333333;">editingParameter</span><span style="color: #333333;">.</span><span style="color: #333333;">ShouldEndEditing</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>When user performs swipe gesture on the cell, the <strong>EditAction</strong> command will be automatically called on every edit action defined in the Fragment. So in the above case, the <strong>EditAction</strong> command will be called twice, one for the Sold action and another for the Delete action.</p>
<p>One thing to note is that if you return the <strong>CanExecuteEditAction </strong>in the ViewModel to false, the button for the designated action will not be presented to the user. It&#8217;s also worth mentioning that when executing the swipe gesture, you can try to debug the <strong>EditingParameter</strong> as it contains useful information, such as the <strong>Action</strong>, <strong>CustomAction</strong>, <strong>Item</strong>, <strong>RowIndex</strong>, <strong>SectionIndex</strong> and <strong>ShouldEndEditing</strong> properties.</p>
<p>And modify the ExecuteMarkSold method as follows.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteMarkSold</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;"> </span><span style="color: #009695;">is</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IEnumerable</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Item</span><span style="color: #333333;">&gt;)</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #3364a4;">IEnumerable</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Item</span><span style="color: #333333;">&gt;</span><span style="color: #333333;"> </span><span style="color: #333333;">items</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">IEnumerable</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Item</span><span style="color: #333333;">&gt;</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">items</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">foreach</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #3364a4;">Item</span><span style="color: #333333;"> item </span><span style="color: #009695;">in</span><span style="color: #333333;"> </span><span style="color: #333333;">items</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">item</span><span style="color: #333333;">.</span><span style="color: #333333;">IsSold</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">item</span><span style="color: #333333;">.</span><span style="color: #333333;">SoldDate</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DateTime</span><span style="color: #333333;">.</span><span style="color: #333333;">Today</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">                </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnDataChanged</span><span style="color: #333333;">(</span><span style="color: #333333;">item</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">else</span><span style="color: #333333;"> </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">parameter</span><span style="color: #333333;"> </span><span style="color: #009695;">is</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Item</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">item</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;"> </span><span style="color: #009695;">as</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Item</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">item</span><span style="color: #333333;">.</span><span style="color: #333333;">IsSold</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">item</span><span style="color: #333333;">.</span><span style="color: #333333;">SoldDate</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DateTime</span><span style="color: #333333;">.</span><span style="color: #333333;">Today</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnDataChanged</span><span style="color: #333333;">(</span><span style="color: #333333;">item</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">    </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SelectedItems</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">null</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SelectedItems</span><span style="color: #333333;">.</span><span style="color: #333333;">Clear</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">}</span></p>
<p>Then, modify the <strong>ItemListBindingProvider.cs</strong> inside the <strong>MyInventory.Core/BindingProviders</strong> folder and add the following line.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">TableView</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">EditActionCommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">EditActionCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindingMode</span><span style="color: #333333;">.</span><span style="color: #333333;">TwoWay</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></span></p>
<p>Now the swipe gesture should work properly.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/wFrLZKVvIew?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>&nbsp;</p>
<h1>Preparing ItemEditFragment</h1>
<p>Now that we have our item list screen ready, let&#8217;s include the new FormFragment to edit and add new items to the list. Right-click on the Fragments folder and choose <strong>Crosslight Android Material Form Fragment</strong> and give it a name of <strong>ItemEditFragment</strong>.</p>
<p><img class="alignnone size-full wp-image-6342" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-3.53.59-PM.png" alt="Screen Shot 2016-03-11 at 3.53.59 PM.png" width="1653" height="1261" /></p>
<p>Replace the contents with the following code.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">ItemListBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ItemEditFragment</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">FormFragment</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ItemEditorViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ItemEditFragment</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ItemEditFragment</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">JniHandleOwnership</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Methods</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">Initialize</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBarItem</span><span style="color: #333333;">(</span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BarItem</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">SaveButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">CommandItemType</span><span style="color: #333333;">.</span><span style="color: #333333;">Done</span><span style="color: #333333;">))</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>Let&#8217;s take it from the top. This class inherits the new <strong>FormFragment</strong> class, which is used to display <strong>Crosslight Form Builder</strong> and takes in the <strong>ItemEditViewModel</strong>. We have two default constructors as usual, then the <strong>Initialize</strong> method is overridden to add toolbar items programmatically. The <strong>SaveButton</strong> indicates the view identifier used for the toolbar item. This convenient method lets Android developers add common commands to the Toolbar without touching any .axml files and inflate the menu. As a side note, if you wish to use the old way of inflating .axml files for the menu, it is still supported. Now when you run the project, you should be able to navigate to the form to Edit and Add new items.</p>
<p><img class="alignnone size-full wp-image-6369" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/form-fragment.png" alt="form-fragment.png" width="1026" height="906" /></p>
<h1>Configuring Shared Element Transitions</h1>
<p>As you can see, your current app can now navigate to the item editor screen using modal transitions. However, it won&#8217;t as look as good with shared element transitions. Let&#8217;s enable the shared element transitions to the form editor view. If you remember, we&#8217;ve defined the <strong>SourceSharedElementIds</strong> from the <strong>ItemListFragment</strong>.</p>
<p><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">SourceSharedElementIds</span><span style="color: #333333;">.</span><span style="color: #333333;">Add</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Id</span><span style="color: #333333;">.</span><span style="color: #333333;">Icon</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p>To enable shared transitions, modify <strong>ItemEditFragment</strong> and add this line inside the <strong>Initialize</strong> method: <strong>this.SharedImageIndex = 0;</strong></p>
<p><img class="alignnone size-full wp-image-6383" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/shared-image-index.png" alt="shared-image-index.png" width="1086" height="316" /></p>
<p>Let&#8217;s re-run the project.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/1IgWLEwI0DI?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>Now you should get a nice shared element transition when navigating to the FormFragment.</p>
<h1>View Image Fragment</h1>
<p>We still need to prepare the a final Fragment, which is the ViewImageFragment, which is needed when you click on the image in the FormFragment.</p>
<p><img class="alignnone size-full wp-image-6399" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/view-larger.png" alt="view-larger.png" width="400" height="908" /></p>
<p>Let&#8217;s prepare this view. Create a new Fragment inside the Fragments folder and give it a name of ViewImageFragment.</p>
<p><img class="alignnone size-full wp-image-6401" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-11-at-5.17.54-PM.png" alt="Screen Shot 2016-03-11 at 5.17.54 PM.png" width="1698" height="1292" /></p>
<p>Replace the contents of the file with the following.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Runtime</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> MyInventory</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">ItemDetailBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">RegisterNavigation</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">PhotoDetail</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewImageFragment</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Fragment</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ItemDetailViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewImageFragment</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewImageFragment</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">JniHandleOwnership</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">javaReference</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">transfer</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Properties</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">ContentLayoutId</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Layout</span><span style="color: #333333;">.</span><span style="color: #c44c57;">view_image_layout</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></p>
<p>Then, create the layout for <strong>view_image_layout.axml</strong> file inside the <strong>Resources/layout</strong> folder. Replace the contents of the AXML with the following.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">&lt;?</span><span style="color: #333333;">xml</span><span style="color: #333333;"> </span><span style="color: #333333;">version</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">1</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">0</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;"> </span><span style="color: #333333;">encoding</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">utf</span><span style="color: #f57d00;">&#8211;</span><span style="color: #f57d00;">8</span><span style="color: #f57d00;">&#8220;</span><span style="color: #009695;">?&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #3364a4;"> </span><span style="color: #333333;">xmlns:android</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">http</span><span style="color: #f57d00;">:</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">schemas</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">.</span><span style="color: #f57d00;">com</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">apk</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">res</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">android</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:orientation</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">vertical</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">TextView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">NameLabel</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:gravity</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">center</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">wrap_content</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">ImageView</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:id</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@</span><span style="color: #f57d00;">+</span><span style="color: #f57d00;">id</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">ImageView</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_width</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><br />
<span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #3364a4;"> </span><span style="color: #333333;">android:layout_height</span><span style="color: #333333;">=</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">match_parent</span><span style="color: #f57d00;">&#8220;</span><span style="color: #3364a4;"> </span><span style="color: #333333;">/</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">&lt;</span><span style="color: #333333;">/</span><span style="color: #3364a4;">LinearLayout</span><span style="color: #333333;">&gt;</span></span></p>
<p>This app should be pretty much complete. There&#8217;s one last thing might want to apply, but this step is completely optional.</p>
<h1>Using mipmap Icons</h1>
<p>Did you notice that the app icon is not crisp and high-res enough?</p>
<p><img class="alignnone size-full wp-image-6413" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/app-icon.png" alt="app-icon.png" width="400" height="876" /></p>
<p>To overcome this, you can take advantage of mipmap folders so that the icons become more crisp. Quoting from the <strong>Android developers blog: </strong></p>
<p class="p1"><span class="s1">It’s best practice to place your app icons in </span><span class="s2">mipmap-</span><span class="s1"> folders (not the </span><span class="s2">drawable-</span><span class="s1"> folders) because they are used at resolutions different from the device’s current density. </span></p>
<p class="p1">What this means, if your device falls under ldpi, it can use mdpi icons to show a more high-res launcher icon.</p>
<p class="p1">Let&#8217;s try to see if this is true. Download and extract this <a href="http://developer.intersoftsolutions.com/download/attachments/23702119/mipmap.zip?api=v2">mipmap</a> zip file and put it under the Resource folder, same level as drawable, layouts and values.</p>
<p class="p1"><img class="alignnone size-full wp-image-6423" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/mipmap-folders.png" alt="mipmap-folders.png" width="300" height="548" /></p>
<p class="p1">Then modify <strong>MainActivity.cs </strong>inside the <strong>Activities</strong> folder to use the new mipmap icon.</p>
<p class="p1"><img class="alignnone size-full wp-image-6425" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/change-icon.png" alt="change-icon.png" width="1746" height="164" /></p>
<p class="p1">Replace Icon property of the ActivityAttribute with &#8220;@mipmap/icon&#8221;, rebuild and re-run your project.</p>
<p class="p1"><img class="alignnone size-full wp-image-6431" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/icon-comparison.png" alt="icon-comparison.png" width="1022" height="876" />As you can see, with the new mipmap technique, your app icon should be very sharp. Small, but noticable improvement. You should only use mipmap folders for launcher icon purposes. Your app is now finished.</p>
<p>&nbsp;</p>
<h1>Learn More</h1>
<p>What you&#8217;ve just did is just a glimpse of the full power of the Material Fragment. I highly suggest you to visit the improved docs for Material design. Start from this article and move your way to its children nodes: <a href="http://developer.intersoftsolutions.com/display/crosslight/Crosslight+Android+Material+Development" target="_blank">Crosslight Android Material Development</a>.</p>
<h1>Samples</h1>
<p>You can obtain the finished sample <a href="http://git.intersoftpt.com/projects/CT/repos/crosslightmaterialmigration/browse" target="_blank">here</a>.</p>
<h1>Conclusion</h1>
<p>I hope you&#8217;ve enjoyed this post as much as I&#8217;m writing it. Hopefully you can follow this tutorial without any hassles and start migrating your existing classic Android apps to Material in no time. Should you have any questions, feel free to <a href="http://www.intersoftsolutions.com/#livechat" target="_blank">initiate a live chat</a> with us, as always.</p>
<p>Till next post,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/03/migrating-to-crosslight-android-material/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Premier Studio 2016</title>
		<link>http://blog.intersoftsolutions.com/2016/03/getting-started-with-premier-studio-2016/</link>
		<comments>http://blog.intersoftsolutions.com/2016/03/getting-started-with-premier-studio-2016/#comments</comments>
		<pubDate>Mon, 07 Mar 2016 11:52:18 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Reference Samples]]></category>
		<category><![CDATA[WebUI]]></category>
		<category><![CDATA[Get Started]]></category>
		<category><![CDATA[Premier Studio 2016]]></category>
		<category><![CDATA[Samples]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WebUI Studio]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=5827</guid>
		<description><![CDATA[In our past releases, getting started with Intersoft Premier Studio was quite inconvenience and tedious. With tons of shortcuts to choose from, you can be easily confused where to start from. In this release, we think hard on what&#8217;s the best possible scenario for users [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/getting-started-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="getting-started" style="float:right; margin:0 0 10px 10px;" /><p>In our past releases, getting started with Intersoft Premier Studio was quite inconvenience and tedious. With tons of shortcuts to choose from, you can be easily confused where to start from. In this release, we think hard on what&#8217;s the best possible scenario for users to get started quickly with our products. At the end, we came to a conclusion: <strong>samples</strong>.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/getting-started.png" alt="getting-started.png" width="700" align="middle" /></p>
<p>Samples provide a hands-on experience for developers as well as practical code for implementing the desired features to their applications. We&#8217;ve made it super easy for you to run the samples and opening the sample solution in Visual Studio, all right from a single web interface.</p>
<h1>Introducing the New Get Started Experience</h1>
<p>When you install Premier Studio, you&#8217;ll get the following dialog box.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/dialog-box.png" alt="dialog-box.png" width="700" align="middle" /></p>
<p>When you click Finish with the checkbox ticked, a new browser will be opened, this will lead you to a landing page that will help you get started with our products (assuming that you have a working internet connection).</p>
<p><img class="alignnone size-full wp-image-5967" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/getting-started2.png" alt="getting-started2.png" width="1326" height="814" /></p>
<p>Simply select one of the products you would like to get started with, you will be immediately presented with the available samples designed in stunning card view interface. Then hover on the samples you&#8217;re interested in to perform an action.</p>
<p>Note that the Get Started experience works only on Windows with Premier Studio (2016 and above) properly installed.</p>
<h1>Getting Started with WebUI</h1>
<p>Nothing explains better than a video. Here&#8217;s a 1-minute video experience on how to get started with WebUI through the new Get Started experience.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/FTLtFX4ZTsI?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>The samples for WebUI is categorized according to its respective controls, so you can quickly jump to the controls you&#8217;re interested in.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webui.png" alt="webui.png" width="700" align="middle" /></p>
<p>When you hover on a sample, you&#8217;ll get the following experience.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/webgrid-first-experience1.png" alt="webgrid-first-experience.png" width="500" align="middle" /></p>
<p>When you click on <strong>Open Solution</strong>, a new Visual Studio instance that contains the sample will be automatically opened. When you click on <strong>Run Sample</strong>, a locally-running sample for that particular sample will be launched. Clicking on Learn More takes you to the WebGrid documentation.</p>
<h1>Getting Started with Crosslight</h1>
<p>And here&#8217;s a minute-and-a-half video that shows the Get Started experience with Crosslight.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/2kwHgjbawqI?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>The samples for Crosslight are categorized as follows:</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/crosslight.png" alt="crosslight.png" width="700" align="middle" /></p>
<ul>
<li><strong>Basic Samples</strong>: These are the basic and recommended samples if you&#8217;re just starting out with Crosslight. It contains the basic fundamentals of Crosslight development, such as MVVM pattern, data binding, display data list, perform CRUD operation, and more.</li>
<li><strong>App Samples</strong>: These samples showcases small, working apps made with Crosslight.</li>
<li><strong>UI Samples</strong>: These samples showcases various UI components available in Crosslight, such as Crosslight Charting, Crosslight Material Design, Crosslight Signature Pad, Crosslight Maps, Crosslight View Slider and more.</li>
<li><strong>Services Samples</strong>: These samples demonstrates how you can work with Crosslight services which are built-in to the Crosslight ViewModel and other library extensions as well. For example, performing calls, scanning barcode, sending emails, sharing content to social media and more.</li>
<li><strong>Data Samples</strong>: These samples shows you how to work with data-related operations with the built-in repositories and how they work together in harmony with the open-source Crosslight App Framework.</li>
</ul>
<p>When you hover on an item, you&#8217;ll be presented with the following.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/mvvm-samples.png" alt="mvvm-samples.png" width="500" align="middle" /></p>
<p>When you click on <strong>Download</strong>, you&#8217;ll immediately get a zip file that is immediately runnable using Xamarin Studio or Visual Studio (works on either Mac or Windows). If you click on <strong>Learn More</strong>, you&#8217;ll be taken to the respective sample page in the Developer Center.</p>
<h1>Getting Started with ClientUI</h1>
<p>Last but not least, here&#8217;s another minute-and-a-half video that shows the Get Started experience with ClientUI.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='604' height='370' src='http://www.youtube.com/embed/mgK21rwJkj0?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0' allowfullscreen='true'></iframe></span></p>
<p>The samples for ClientUI are categorized as follows.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/clientui.png" alt="clientui.png" width="700" align="middle" /></p>
<p>The categorization follows the previous categories available in the <a href="http://live.clientui.com" target="_blank">ClientUI Live Samples</a>. When hovering to an item, you&#8217;ll be presented with the following experience.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/clientui-item.png" alt="clientui-item.png" width="700" align="middle" /></p>
<p>If the sample has a WPF counterpart, then an additional combo box will be displayed for WPF, as well as the <strong>Run Sample</strong> option. If the WPF counterpart is not available, then the combo box will not appear. When clicking on the <strong>Open Solution</strong>, then the Silverlight solution will be opened. Similarly, clicking on <strong>Run Sample</strong> will run the Silverlight sample locally on your computer.</p>
<h1>Conclusion</h1>
<p>We hope you enjoyed the new Getting Started experience available in this new release. Should you have any feedback with the Getting Started experience, feel free to <a href="http://www.intersoftsolutions.com/#livechat" target="_blank">initiate a chat with us</a>, and we’ll be more than happy to assist you for the best on-boarding experience.</p>
<p>Till next post,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/03/getting-started-with-premier-studio-2016/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The All-new WebUI. Experience It Yourself.</title>
		<link>http://blog.intersoftsolutions.com/2016/03/the-all-new-webui-experience-it-yourself/</link>
		<comments>http://blog.intersoftsolutions.com/2016/03/the-all-new-webui-experience-it-yourself/#comments</comments>
		<pubDate>Thu, 03 Mar 2016 04:26:48 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[WebUI]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[New Releases]]></category>
		<category><![CDATA[WebCombo]]></category>
		<category><![CDATA[WebDesktop]]></category>
		<category><![CDATA[WebEssentials]]></category>
		<category><![CDATA[WebGrid]]></category>
		<category><![CDATA[WebInput]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebTextEditor]]></category>
		<category><![CDATA[WebTreeView]]></category>
		<category><![CDATA[WebUI Studio]]></category>
		<category><![CDATA[WebUI Studio ASP.NET]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=5685</guid>
		<description><![CDATA[Our months of hard work finally paid off. It&#8217;s finally here. With excellent craftsmanship and fine attention to detail, we&#8217;re very proud to announce the all-new and powerful WebUI 2016. The entire WebUI lineup consisting of highly-advanced 40+ web components now finally receives a truly deserved facelift. [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-01-at-3.22.29-PM-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="Screen Shot 2016-03-01 at 3.22.29 PM" style="float:right; margin:0 0 10px 10px;" /><p>Our months of hard work finally paid off. It&#8217;s finally here. With excellent craftsmanship and fine attention to detail, we&#8217;re very proud to announce the all-new and powerful WebUI 2016. The entire WebUI lineup consisting of highly-advanced 40+ web components now finally receives a truly deserved facelift.</p>
<p><img class="alignnone size-full wp-image-5706" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-01-at-3.22.29-PM.png" alt="Screen Shot 2016-03-01 at 3.22.29 PM.png" width="1768" height="1192" /></p>
<h1>Accessing the New WebUI Live Experience</h1>
<p>For so long, customers have enjoyed our live WebUI demos through <a href="http://live.intersoftsolutions.com" target="_blank">http://live.intersoftsolutions.com</a>. While this experience is adequate, being redirected to another site for a hands-on experience just won&#8217;t cut it anymore. So we decided to integrate the new samples right our website. That&#8217;s right, now you can experience the new WebUI samples with the gorgeous unified modern theme, right from our website.</p>
<p><img class="alignnone size-full wp-image-5726" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-9.56.28-AM.png" alt="Screen Shot 2016-03-02 at 9.56.28 AM.png" width="1522" height="880" /></p>
<p>Don&#8217;t worry, we&#8217;ve put these buttons everywhere, so you can easily access them from various pages in WebUI, although it is very much recommended to access them from <a href="http://www.intersoftsolutions.com/WebUI" target="_blank">/WebUI</a>. Should you miss this experience and open the old live samples, you&#8217;ll be greeted with the following dialog box.</p>
<p><img class="alignnone size-full wp-image-5732" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.07.46-AM.png" alt="Screen Shot 2016-03-02 at 10.07.46 AM.png" width="1604" height="828" /></p>
<p>Without further ado, let&#8217;s get right onto the new WebUI Live Experience.</p>
<h1>The Home Screen</h1>
<p>Right when you launch the new Live Experience, you&#8217;ll be greeted with a nice and modern blurred background, showcasing the flagship products of WebUI. This experience works best on modern desktop browsers supporting HTML5 and CSS3.</p>
<p><img class="alignnone size-full wp-image-5741" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.27.31-AM.png" alt="Screen Shot 2016-03-02 at 10.27.31 AM.png" width="2430" height="1596" /></p>
<p>If you click on products such as WebDesktop and WebEssentials, you can also find a grid of sub-components in them.</p>
<p><img class="alignnone size-full wp-image-5755" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.36.51-AM.png" alt="Screen Shot 2016-03-02 at 10.36.51 AM.png" width="1776" height="1410" /></p>
<h1>WebGrid</h1>
<p>When you launch WebGrid for the first time, you&#8217;ll be greeted with the First Experience.</p>
<p><img class="alignnone size-full wp-image-5758" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.33.25-AM.png" alt="Screen Shot 2016-03-02 at 10.33.25 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This first experience sample demonstrates many of the top UI features available in WebGrid, combined with some unique features such as column freezing, filter suggestion and more.</span></p>
<p class="p1"><span class="s1">Some of the top features demonstrated in this sample are:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Sleek look and feel with the all-new &#8220;Elegant&#8221; Default Style. The Default Style feature significantly reduces page output size by eliminating in-line styles. Try to view source and notice there are no styles generated in the page level.</span></li>
<li class="li1"><span class="s1">Improved user interface with a new set of fresh icons, background images and UI elements.</span></li>
<li class="li1"><span class="s1">New context menu engine. Try to right click on the Grid area to experience the new context menu system.</span></li>
<li class="li1"><span class="s1">LiveFreeze™ column freezing feature. The only column freezing implementation that perfectly simulates Excel® freezing behavior.</span></li>
<li class="li1"><span class="s1">Automatic Filter Suggestion. Try to right click on a cell (eg, &#8220;Owner&#8221;), then choose one of the available filter options. The suggested filter options are based on selected cell&#8217;s data type and value.</span></li>
<li class="li1"><span class="s1">Filter Status Indicator. When one or more columns are filtered, notice that the filter indicator status is changed to &#8220;Filtered&#8221;. This indicator helps end users to understand the current state of filters without has to display filter bar. You can click on the filter status indicator to toggle the filter state.</span></li>
<li class="li1"><span class="s1">SmartWebResources™. This innovative technology enable this sample to run without dependencies to &#8220;physical&#8221; client resources. All client resources such as scripts and images are retrieved directly from resource assembly.</span></li>
<li class="li2"><span class="s3">Declarative datasource control binding. Notice that there are no codes required for the data binding operation (see C# and VB tab).</span></li>
</ul>
<h1>Samples Navigation Experience</h1>
<p>To navigate between samples, you can easily use the arrows on the left and right-hand side of the screen, or use the menu button on the top-left corner of the screen. This will open the Menu panel and you can easily jump between samples.</p>
<p><img class="alignnone size-full wp-image-5776" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.13.01-AM.png" alt="Screen Shot 2016-03-02 at 11.13.01 AM.png" width="1452" height="886" /></p>
<p>If you wish to go back the controls grid, simply click the Home button. Should you encounter any problems or hassles with the samples, feel free to chat with us directly using the <a href="http://www.intersoftsolutions.com/#livechat">live messenger</a> on the bottom-right corner.</p>
<h1>WebCombo</h1>
<p>This the First Experience when you launch the WebCombo sample.</p>
<p><img class="alignnone size-full wp-image-5785" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.16.58-AM.png" alt="Screen Shot 2016-03-02 at 11.16.58 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This sample demonstrates the unified modern theme of WebCombo and many of its key features such as SmartWebResources™ and declarative datasource control binding.</span></p>
<p class="p2"><span class="s2">Notice that there are no code required for the data binding operation (see C# and VB tab). Try experimenting with the WebCombo controls in this page to see some unique features in action. For instance, Reports-To is using multiple selection feature combined with image column type.</span></p>
<h1 class="p2">WebInput</h1>
<p>This is the First Experience when you launch the WebInput sample.</p>
<p><img class="alignnone size-full wp-image-5790" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.18.31-AM.png" alt="Screen Shot 2016-03-02 at 11.18.31 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This sample demonstrates the unified modern theme of WebInput and its key features.</span></p>
<p class="p1"><span class="s1">Some of the new features demonstrated in this sample are:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Sleek look and feel with the all-new &#8220;Elegant&#8221; Default Style. The Default Style feature significantly reduces page output size by eliminating in-line styles. Try to view source and notice there are no styles generated in the page level.</span></li>
<li class="li1"><span class="s1">Ordinary input text and multiline input text features, like demonstrated in FirstName, LastName, Address, City, Country fields.</span></li>
<li class="li1"><span class="s1">Display and edit format features, like demonstrated in Birth Date field.</span></li>
<li class="li1"><span class="s1">Other edit format feature, like demonstrated in First Name, Last Name, Phone, Extension fields.</span></li>
</ul>
<p class="p2"><span class="s3">This sample also demonstrate integration between WebInput and .NET Validator Control such as RequiredValidator and CompareValidator.</span></p>
<h1 class="p2">WebScheduler</h1>
<p>This is the First Experience when you launch the WebScheduler sample.</p>
<p><img class="alignnone size-full wp-image-5793" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.19.33-AM.png" alt="Screen Shot 2016-03-02 at 11.19.33 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This sample is designed to model a car-rental tracking scenario – demonstrating how WebScheduler performs in real-world enterprise application. Bound to over 3000 events, WebScheduler delivers responsive user experiences regardless of the data size.</span></p>
<p class="p1"><span class="s1">The powerful JSON technology and smart client paging rendering significantly improved the overall WebScheduler performance to a new level not possible before. This sample combines both the ViewPort™ and EventPageSize™ Client Paging rendering enabling WebScheduler to load in a flash.</span></p>
<p class="p2"><span class="s2">Try to play around with the scheduler. Use the upper right vehicle locator for a quick jump. Click on the visual indicator on the resources area to populate the car information.</span></p>
<h1 class="p2">WebDesktop</h1>
<p>This is the First Experience when you launch the WebDesktop sample.</p>
<p><img class="alignnone size-full wp-image-5819" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-1.10.00-PM.png" alt="Screen Shot 2016-03-02 at 1.10.00 PM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This reference sample demonstrates the beautiful modern theme and many groundbreaking features in WebDesktopManager such as shortcuts and comprehensive window management. It also showcases the integration of various WebDesktop components to create full-fledge and immersive web applications, which include WebPaneManager, WebToolBar, WebTab, WebDialogBox, WebNotification and more. Try to double click each icon to see the WebDesktop components in action.</span></p>
<h1>WebEssentials</h1>
<p>This is the First Experience when you launch the WebEssentials sample.</p>
<p><img class="alignnone size-full wp-image-5820" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-1.10.44-PM.png" alt="Screen Shot 2016-03-02 at 1.10.44 PM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This reference sample perfectly demonstrates WebEssentials component suite which comprised of 8 innovative controls, ranging from accordion, calendar, slider, to rating. WebEssentials enables you to create interactive and visually engaging modern web applications.</span></p>
<p class="p1"><span class="s1">In this Online Resume scenario, WebAccordion is used as the main container, dividing this lengthy form into three sections. WebProgressBar is used to indicate the section completion process. The bar will be filled as users click on next. WebCalendar is used for date input and WebSlider for selecting a specific range. WebSlidingMenu is used on the right FAQ section. Click on a question and the answer is shown in a swift and smooth sliding animation.</span></p>
<p class="p2"><span class="s2">Additionally, WebFlyPostBackManager is used to populate the section’s content on demand as users click the next button. In Section 1, WebFileUploader is used for image uploading, demonstrating its seamless AJAX upload experience.</span></p>
<h1>WebTextEditor</h1>
<p>This is the First Experience when you launch the WebTextEditor sample.</p>
<p><img class="alignnone size-full wp-image-5801" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.27.45-AM.png" alt="Screen Shot 2016-03-02 at 11.27.45 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">WebTextEditor is the industry&#8217;s first text editor that integrates intuitive writing tools, in-line spelling checker, and sophisticated uploading capability in a single interface – enabling you to rapidly build rich CMS application that delivers breakthrough, unique editing experience to your end users.</span></p>
<p class="p2"><span class="s2">This sample demonstrates tight integration with Desktop Manager, Spell Checker, File Uploader and many UI components from WebDesktop to produce sophisticated, state-of-the-art CMS application that ultimately feels like a desktop word processing application.</span></p>
<h1 class="p2">WebTreeView</h1>
<p>This is the First Experience when you launch the WebTreeView sample.</p>
<p><img class="alignnone size-full wp-image-5805" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.29.37-AM.png" alt="Screen Shot 2016-03-02 at 11.29.37 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">WebTreeView provides rich features that lets you easily create hierarchical data presentation. This powerful control incorporates numerous unique features such as:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Data Binding</span></li>
<li class="li1"><span class="s1">Tristate checkbox</span></li>
<li class="li1"><span class="s1">Add, edit, and delete node</span></li>
<li class="li1"><span class="s1">Drag and Drop node(s)</span></li>
<li class="li1"><span class="s1">Keyboard Navigation</span></li>
<li class="li1"><span class="s1">Load On Demand</span></li>
<li class="li1"><span class="s1">Layout Manager and Structure Manager</span></li>
<li class="li1"><span class="s1">Auto Postback</span></li>
<li class="li1"><span class="s1">Flexible and highly customizable to meet your design needs</span></li>
<li class="li1"><span class="s1">client-side API &#8211; WebTreeView Designer</span></li>
</ul>
<p class="p2"><span class="s3">The above sample utilizes Enable Tristate CheckBox and Keyboard Navigation features.</span></p>
<h1 class="p2">Explore the Samples</h1>
<p class="p2">We hope that you liked our new samples. To start taking advantage of our best WebUI release yet, feel free to download the new Premier Studio 2016 <a href="http://www.intersoftsolutions.com/RequestTrial" target="_blank">here</a>. Happy exploring!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/03/the-all-new-webui-experience-it-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Premier Studio 2016 is here.</title>
		<link>http://blog.intersoftsolutions.com/2016/02/premier-studio-2016-is-here/</link>
		<comments>http://blog.intersoftsolutions.com/2016/02/premier-studio-2016-is-here/#comments</comments>
		<pubDate>Mon, 29 Feb 2016 05:21:36 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[WebUI]]></category>
		<category><![CDATA[New Releases]]></category>
		<category><![CDATA[WebUI Studio]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=5669</guid>
		<description><![CDATA[The wait is over! Premier Studio 2016 is here, our biggest and most revolutionary release since Intersoft was established. Our team worked very hard to ensure the best quality of the products delivered in this release. A big thanks to you all for your continuous [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/premier-studio-2016-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="Premier Studio 2016" style="float:right; margin:0 0 10px 10px;" /><p>The wait is over! Premier Studio 2016 is here, our biggest and most revolutionary release since Intersoft was established. Our team worked very hard to ensure the best quality of the products delivered in this release. A big thanks to you all for your continuous support and feedback to make this great release a reality.</p>
<p><img class="alignnone size-large wp-image-5678" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/premier-studio-2016-1024x467.png" alt="Premier Studio 2016" width="700" /></p>
<p>This latest release brings major upgrades to all our toolset across 5 platforms, including ASP​.​NET, Silverlight, WPF, iOS, and Android. It reflects on our continuous commitment to create the most innovative and forward-thinking toolset that dramatically improve productivity and shorten development time. We&#8217;re very excited to have something new for everyone!</p>
<p>We started out by revamping our entire product lineups starting with WebUI, which includes 40+ web components, with Unified Theming support. The new feature now uses advanced SCSS in combination with Node SASS and Web Compiler to achieve a modern, unified look and feel across the lineup. It&#8217;s the best of both worlds: industry&#8217;s most advanced web components with beautiful and gorgeous design combined into a single, complete package. More importantly, all WebUI lineups have been reengineered with the latest and greatest web technologies, so you can expect responsive design and full support for latest major browsers like IE11, Edge, Safari 9, Chrome 48, Firefox 44.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/webui-2016-banner.jpg"><img class="alignnone size-large wp-image-5673" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/webui-2016-banner-1024x574.jpg" alt="WebUI 2016" width="700" /></a></p>
<p>Next, the most anticipated improvement for Crosslight is here. Fully embracing Material Design, building gorgeous Material apps is no longer a chore. The new v7 library introduced in this release was built from the ground up, taking account the user experience and interaction covered in the new Material Design. With the new library and simplified APIs, you can now easily add Material Design elements and interactions such as Floating Action Buttons, Collapsing Toolbars with expand/collapse behaviors, parallax scrolling, Material Navigation Drawer, and so much more.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/crosslight5-banner.png"><img class="alignnone size-large wp-image-5675" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/crosslight5-banner-1024x596.png" alt="crosslight5-banner" width="700" /></a></p>
<p>Another important milestone in this release, we&#8217;ve smoothened out the development experience by fully embracing NuGet package manager as the main delivery channel for future Crosslight builds, so you don&#8217;t have to worry about tedious packages references to ensure your Crosslight solution and samples work properly.</p>
<p>Introducing the new ClientUI Reporting for WPF, now you can easily author and build gorgeous enterprise reports from the convenience of your desktop. Fully optimized and fine-tuned for WPF, ClientUI Reporting for WPF ensures that your existing ClientUI reports will continue to work as it is, whether it&#8217;s on the desktop or on the web.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/clientui12-banner1.png"><img class="alignnone wp-image-5681 size-large" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/02/clientui12-banner1-1024x545.png" alt="" width="604" height="321" /></a></p>
<p>Visualizing your data in your reports? We have something special in store for you. In this release, new charting support with over more than 20+ types of charts are now available in ClientUI Reporting, for both WPF and Silverlight platforms. Whether it&#8217;s doughnut, pie, line, bar, columns, anything. We&#8217;ve got it all covered. This new addition is sign of our enduring commitment towards ClientUI and continues to strengthen ClientUI&#8217;s position as the best toolset for enterprise development on Silverlight and WPF platforms.</p>
<h1>Download Now</h1>
<p>To begin enjoying this new release, simply <a href="http://intersoftsolutions.com/account" target="_blank">sign-in</a> to your account to download the latest release, or request a trial <a href="http://intersoftsolutions.com/RequestTrial" target="_blank">here</a>.</p>
<p>While waiting for downloads, please follow the links below to learn more what’s new in this latest release:</p>
<ul>
<li><a href="http://intersoftsolutions.com/Corporate/PressRelease/dca52020-15ed-4d59-891e-9dee63197e21" target="_blank">Press Release</a> — an official overview of the release</li>
<li><a href="http://intersoftsolutions.com/2016" target="_blank">2016 Tour</a> — a comprehensive details of each new component and new feature introduced in this release</li>
</ul>
<p>In addition to product bits, we&#8217;ve moved forward to a better direction which greatly enhance and simplify installation experience. The first thing you notice when downloading the new installer is its absolutely small size, 480MB, which is about half the size of previous installer. It&#8217;s made possible as we no longer ship offline documentation since we&#8217;re completely transitioning to agile workflow for all products (including WebUI and ClientUI now). This direction allows all our documentation to be updated online, whenever new features are added, instead of waiting for the next installer update. As the result, Intersoft Developer Center has been significantly updated to cover new documentation for all the three platforms. You can start exploring <a href="http://developer.intersoftsolutions.com">here</a>.</p>
<p>Finally, we hope you enjoy our latest release as much as we love building it. We look forward to see what you will build next!</p>
<p>Note: New licenses will be sent out to all active subscribers in 24 hours after this announcement. You’ll receive a notification email when your account is updated.</p>
<p>All the best,<br />
Jimmy</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/02/premier-studio-2016-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
