<?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>Mindscape Blog &#187; WPF Elements</title>
	<atom:link href="http://www.mindscapehq.com/blog/index.php/category/wpf-elements/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mindscapehq.com/blog</link>
	<description>The official blog of Mindscape</description>
	<lastBuildDate>Mon, 21 May 2012 01:58:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nightly news, 11 May 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/05/10/nightly-news-11-may-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/05/10/nightly-news-11-may-2012/#comments</comments>
		<pubDate>Thu, 10 May 2012 21:30:23 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>
		<category><![CDATA[Nightly News]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=5005</guid>
		<description><![CDATA[A strange week at Mindscape HQ as the troops have been primarily focused on working out how to use the motion-activated candy dispenser&#8230; and then how to stop it again. But fear not, in between all the wild Kinect-style gesticulations, we have managed to bash out a good crop of features and fixes. Here&#8217;s what [...]]]></description>
			<content:encoded><![CDATA[<p>A strange week at Mindscape HQ as the troops have been primarily focused on working out how to use the motion-activated candy dispenser&#8230; and then how to stop it again.  But fear not, in between all the wild Kinect-style gesticulations, we have managed to bash out a good crop of features and fixes.  Here&#8217;s what you&#8217;ll find in this week&#8217;s nightly builds.</p>
<p><a href="http://www.ciphermysteries.com/2012/03/04/alternative-voynich-manuscript-wikipedia-page"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/05/DeveloperNotes211.png" alt="" title="I like to imagine that one day Mindscape devs will look back on my code like this. Except with James Newton-King instead of nymphs." width="344" height="64" class="alignleft size-full wp-image-5007" /></a></p>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Added DataGridColumn.Foreground property</li>
<li>DataGridColumn.DisplayTemplate is now respected when using DisplayMemberBinding</li>
<li>DataGridColumn.DisplayMemberBinding now supports StringFormat</li>
<li>DataGridColumn now respects DisplayNameAttribute when using PropertyName or DisplayMemberBinding</li>
<li>Added ToolTipBinding property for charting data series</li>
<li>Scatter charts now support missing data points (when a value is null or NaN)</li>
<li>You can now set the starting (Minimum) value of a logarithmic axis scale</li>
<li>Charting performance improvements</li>
<li>Added built-in nullable type editors to DataGrid and PropertyGrid</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>CoffeeScript compiler now warns if a file contains mixed tabs and spaces</li>
<li>Fix for Less compiler error when calling colour functions on a named (not hex) colour</li>
<li>Fix for performance problem when using Pro Power Tools Enhanced Scroll Bar with the &#8216;show bookmarks and breakpoints&#8217; option</li>
<li>Fixed a couple of highlighting errors</li>
</ul>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Added MarkPropertyChanged method so that properties can be manually marked as dirty &#8212; for example, when changing properties of a mutable user-defined type.  Mutable value objects!  Forsooth!</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>DiagramBitmapRenderer now handles dynamic resources</li>
</ul>
<p>As usual the <a href="http://www.mindscapehq.com/downloads/">free editions of the nightly builds are available right now from the downloads page</a>, and the <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/05/10/nightly-news-11-may-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 4 May 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/05/03/nightly-news-4-may-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/05/03/nightly-news-4-may-2012/#comments</comments>
		<pubDate>Thu, 03 May 2012 21:45:07 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Silverlight Elements]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>
		<category><![CDATA[Nightly News]]></category>
		<category><![CDATA[Web Workbench]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4994</guid>
		<description><![CDATA[LightSpeed Updated SQLite provider to 1.0.80 Fix for cascade delete across a STI hierarchy where the cascade enters the hierarchy in a derived class and we were trying to proceed through an association declared in a sibling class Web Workbench Added JSHint support Fixed syntax highlighting for identifiers starting with an underscore Fixed incorrect &#8216;less [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/b/kaelr/archive/2012/04/14/exploring-code-canvas.aspx"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/05/DeveloperNotes21.png" alt="" title="Since I&#039;m not allowed to say the B word on the blog any more" width="344" height="64" class="alignleft size-full wp-image-4995" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Updated SQLite provider to 1.0.80</li>
<li>Fix for cascade delete across a STI hierarchy where the cascade enters the hierarchy in a derived class and we were trying to proceed through an association declared in a sibling class</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Added JSHint support</li>
<li>Fixed syntax highlighting for identifiers starting with an underscore</li>
<li>Fixed incorrect &#8216;less than or equal to&#8217; operator in Less mixin guards</li>
<li>Added highlighting support for inline data URLs</li>
<li>Fixed highlighting when using a comparison expression was used as a function argument</li>
<li>Fixed highlighting of interpolated variables in URLs</li>
<li>Fixed highlighting when a function call contained arguments that were spaced lists, and a nonfinal element of such a list was another function call</li>
<li>Switched Sass compiler from IronRuby to &#8216;proper&#8217; Ruby</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>Fixed a bug with connection point positions in a rotated nested node</li>
<li>Added sample of removing a groupable node from its parent</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Fixed a couple of issues when changing DataGrid.ItemsSource from null to a collection instance</li>
<li>Fixed a hit testing issue with DataGrid cells</li>
<li>Fixed an issue when a DataGrid contains a mix of star-sizing and absolute-sizing columns</li>
<li>DataGrid DisplayMemberBinding now supports UpdateSourceTrigger of LostFocus</li>
<li>Fixed a validation bug in DisplayMemberBinding</li>
<li>Fixed the TrackingElement sample to support duplicate values</li>
<li>Fixed an error if a chart XBinding or YBinding was set to a nonexistent property</li>
</ul>
<p><strong>Silverlight Elements</strong></p>
<ul>
<li>First drop of spell checking for the HTML rich text editor</li>
<li>Ctrl+Left and Ctrl+Right in the HTML editor now respect symbols</li>
<li>Fixed a bug in ContextMenu where if it was forced closed due to the browser window being resized, it would never open again</li>
</ul>
<p>All these updates are in the current nightly builds &#8212; <a href="http://www.mindscapehq.com/downloads/">free editions from the downloads page</a>, <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/05/03/nightly-news-4-may-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using WPF Elements from F#</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/04/29/using-wpf-elements-from-f/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/04/29/using-wpf-elements-from-f/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 03:07:16 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4982</guid>
		<description><![CDATA[WPF and F#? It&#8217;s not a natural mix &#8212; Visual Studio doesn&#8217;t provide templates or tooling for F# WPF projects, and WPF&#8217;s implicit architecture normally implies mutable view models which are at odds with F#&#8217;s preference for immutable data types. But sometimes a project comes along which seems like a great fit for F#, and [...]]]></description>
			<content:encoded><![CDATA[<p>WPF and F#?  It&#8217;s not a natural mix &#8212; Visual Studio doesn&#8217;t provide templates or tooling for F# WPF projects, and WPF&#8217;s implicit architecture normally implies mutable view models which are at odds with F#&#8217;s preference for immutable data types.  But sometimes a project comes along which seems like a great fit for F#, <em>and</em> for a WPF front end.  A great example is data visualisation.  Retrieving and processing the data is exactly what F# does well, and innovative ways of presenting data are much easier to implement on WPF than on any other platform; and in a visualisation scenario the main view model is typically immutable.</p>
<p>I&#8217;m going to look at two ways of combining F# and WPF.  I&#8217;ll be using the Chart control from WPF Elements as my main example, but a lot of what I talk about here is equally applicable to any other WPF control, built-in or third-party.</p>
<p><strong>Solution 1: Hybrid C# and F# Solution</strong></p>
<p>The traditional way of using F# in a WPF application is to put the F# code into a class library, then invoke that class library from a C# or Visual Basic WPF application.  This works very easily &#8212; a C# application can call a F# class library just as easily as it can a C# class library, with full intellisense and debugging and everything else you&#8217;d expect.</p>
<p>For this example, I&#8217;m going to keep the F# class library very simple.  In reality, you probably wouldn&#8217;t create a separate class library for something this basic.  F# really starts to shine when you&#8217;re doing a bit more processing on your data, but to keep things simple I&#8217;m not going to do much more than download it.</p>
<p>The data I&#8217;m going to use is the <a href="https://datamarket.azure.com/dataset/b6092d85-5dc4-49a8-90a0-5f65e7ee2eec">London Borough Profiles</a> from the Windows Azure Datamarket.  This is dead easy to use in F# 3.0 thanks to the OData type provider:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">open Microsoft<span style="color: #008000;">.</span><span style="color: #0000FF;">FSharp</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Data</span><span style="color: #008000;">.</span><span style="color: #0000FF;">TypeProviders</span>
&nbsp;
type Boroughs <span style="color: #008000;">=</span> ODataService<span style="color: #008000;">&lt;</span><span style="color: #666666;">&quot;https://api.datamarket.azure.com/GreaterLondonAuthority/LondonBoroughProfiles/&quot;</span><span style="color: #008000;">&gt;</span>
&nbsp;
let dataContext <span style="color: #008000;">=</span> Boroughs<span style="color: #008000;">.</span><span style="color: #0000FF;">GetDataContext</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
dataContext<span style="color: #008000;">.</span><span style="color: #0000FF;">Credentials</span> <span style="color: #008000;">&lt;-</span> <span style="color: #000000;">System.<span style="color: #0000FF;">Net</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">NetworkCredential</span><span style="color: #008000;">&#40;</span>YourUserName, YourAccountKey<span style="color: #008000;">&#41;</span></pre></div></div>

<p>For my view model, I want to extract just a subset of this data, so I define a couple of F# types to surface it:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">open <span style="color: #000000;">System.<span style="color: #0000FF;">Collections</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">Generic</span>
&nbsp;
type BoroughInfo <span style="color: #008000;">=</span> <span style="color: #008000;">&#123;</span>
  Area <span style="color: #008000;">:</span> <span style="color: #6666cc; font-weight: bold;">string</span>
  MaleLifeExpectancy <span style="color: #008000;">:</span> <span style="color: #6666cc; font-weight: bold;">float</span>
  FemaleLifeExpectancy <span style="color: #008000;">:</span> <span style="color: #6666cc; font-weight: bold;">float</span>
  Employment <span style="color: #008000;">:</span> <span style="color: #6666cc; font-weight: bold;">float</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
type ViewModel <span style="color: #008000;">=</span> <span style="color: #008000;">&#123;</span>
  Boroughs <span style="color: #008000;">:</span> List<span style="color: #008000;">&lt;</span>BoroughInfo<span style="color: #008000;">&gt;</span>    <span style="color: #008080; font-style: italic;">// not BoroughInfo list -- see below</span>
  National <span style="color: #008000;">:</span> BoroughInfo
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>These are F# immutable record types.  We don&#8217;t need to modify the data, so immutable types are easier to write and we don&#8217;t need to muck around with all that tedious INotifyPropertyChanged stuff.  The view model is going to include a list of entries for individual boroughs, plus a &#8216;dummy&#8217; borough representing national averages so I can display them alongside the per-borough data.</p>
<p>One gotcha is that the WPF Elements charting DataSeries expects an IList as its ItemsSource.  The F# list type doesn&#8217;t implement IList, so we have to be sure to make ViewModel.Boroughs a BCL List instead of a F# list.</p>
<p>Now we can build our view model:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">let <span style="color: #008000;">&#40;</span>national, boroughs<span style="color: #008000;">&#41;</span> <span style="color: #008000;">=</span>
  dataContext<span style="color: #008000;">.</span><span style="color: #0000FF;">LondonBoroughProfiles</span>
  <span style="color: #008000;">|&gt;</span> Seq<span style="color: #008000;">.</span><span style="color: #0000FF;">filter</span> <span style="color: #008000;">&#40;</span>fun r <span style="color: #008000;">-&gt;</span> r<span style="color: #008000;">.</span><span style="color: #0000FF;">MaleLifeExpectancy20072009</span><span style="color: #008000;">.</span><span style="color: #0000FF;">HasValue</span> <span style="color: #008000;">&amp;&amp;</span> r<span style="color: #008000;">.</span><span style="color: #0000FF;">FemaleLifeExpectancy20072009</span><span style="color: #008000;">.</span><span style="color: #0000FF;">HasValue</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">|&gt;</span> Seq<span style="color: #008000;">.</span><span style="color: #0000FF;">map</span> <span style="color: #008000;">&#40;</span>fun r <span style="color: #008000;">-&gt;</span> <span style="color: #008000;">&#123;</span> Area <span style="color: #008000;">=</span> r<span style="color: #008000;">.</span><span style="color: #0000FF;">Area</span><span style="color: #008000;">;</span> MaleLifeExpectancy <span style="color: #008000;">=</span> r<span style="color: #008000;">.</span><span style="color: #0000FF;">MaleLifeExpectancy20072009</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Value</span><span style="color: #008000;">;</span> FemaleLifeExpectancy <span style="color: #008000;">=</span> r<span style="color: #008000;">.</span><span style="color: #0000FF;">FemaleLifeExpectancy20072009</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Value</span><span style="color: #008000;">;</span> Employment <span style="color: #008000;">=</span> r<span style="color: #008000;">.</span><span style="color: #0000FF;">EmploymentRate2009</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Value</span> <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">|&gt;</span> Seq<span style="color: #008000;">.</span><span style="color: #0000FF;">toList</span>
  <span style="color: #008000;">|&gt;</span> List<span style="color: #008000;">.</span><span style="color: #0000FF;">partition</span> <span style="color: #008000;">&#40;</span>fun b <span style="color: #008000;">-&gt;</span> b<span style="color: #008000;">.</span><span style="color: #0000FF;">Area</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;National Comparator&quot;</span><span style="color: #008000;">&#41;</span>
&nbsp;
let viewModel <span style="color: #008000;">=</span> <span style="color: #008000;">&#123;</span> Boroughs <span style="color: #008000;">=</span> List<span style="color: #008000;">&lt;</span>_<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span>boroughs<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> National <span style="color: #008000;">=</span> List<span style="color: #008000;">.</span><span style="color: #0000FF;">head</span> national <span style="color: #008000;">&#125;</span></pre></div></div>

<p>Most of this should be self-explanatory &#8212; we are downloading all the borough data from the data context provided by the OData type provider, filtering out a couple of containers that don&#8217;t have data, and mapping away the nullable values.  (We could have done some of this using F# query expressions, but it&#8217;s not worth it for this data set.)  The only thing that may be unfamiliar is List.partition, which splits a list into two lists, the first containing things that satisfy the predicate and the second containing things that don&#8217;t.  The assignment therefore puts the &#8216;National Comparator&#8217; pseudo-borough into the &#8216;national&#8217; list, and the real boroughs into the &#8216;boroughs&#8217; list.</p>
<p>The end result of all this is a value called &#8216;viewModel&#8217; of type ViewModel, and we can now consume this from a C# application:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">// Code-behind for MainWindow.xaml -- or of course you could automatically</span>
<span style="color: #008080; font-style: italic;">// wire it up using Caliburn Micro.</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">partial</span> <span style="color: #6666cc; font-weight: bold;">class</span> MainWindow <span style="color: #008000;">:</span> Window
<span style="color: #008000;">&#123;</span>
  <span style="color: #0600FF; font-weight: bold;">public</span> MainWindow<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
    InitializeComponent<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    DataContext <span style="color: #008000;">=</span> Data<span style="color: #008000;">.</span><span style="color: #0000FF;">viewModel</span><span style="color: #008000;">;</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;12&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:LineSeries</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding Boroughs}&quot;</span> <span style="color: #000066;">XBinding</span>=<span style="color: #ff0000;">&quot;{Binding Area}&quot;</span> <span style="color: #000066;">YBinding</span>=<span style="color: #ff0000;">&quot;{Binding MaleLifeExpectancy}&quot;</span> <span style="color: #000066;">SeriesBrush</span>=<span style="color: #ff0000;">&quot;Navy&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:LineSeries</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding Boroughs}&quot;</span> <span style="color: #000066;">XBinding</span>=<span style="color: #ff0000;">&quot;{Binding Area}&quot;</span> <span style="color: #000066;">YBinding</span>=<span style="color: #ff0000;">&quot;{Binding FemaleLifeExpectancy}&quot;</span> <span style="color: #000066;">SeriesBrush</span>=<span style="color: #ff0000;">&quot;Red&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:LineSeries</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding Boroughs}&quot;</span> <span style="color: #000066;">XBinding</span>=<span style="color: #ff0000;">&quot;{Binding Area}&quot;</span> <span style="color: #000066;">YBinding</span>=<span style="color: #ff0000;">&quot;{Binding Employment}&quot;</span> <span style="color: #000066;">YAxisTitle</span>=<span style="color: #ff0000;">&quot;Employment (%)&quot;</span> <span style="color: #000066;">SeriesBrush</span>=<span style="color: #ff0000;">&quot;Green&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart.XAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:ChartAxis</span> <span style="color: #000066;">LabelRotation</span>=<span style="color: #ff0000;">&quot;90&quot;</span> <span style="color: #000066;">LabelStep</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">MajorTickSpacing</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart.XAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart.YAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:ChartAxis</span> <span style="color: #000066;">Minimum</span>=<span style="color: #ff0000;">&quot;65&quot;</span> <span style="color: #000066;">Maximum</span>=<span style="color: #ff0000;">&quot;90&quot;</span> <span style="color: #000066;">Title</span>=<span style="color: #ff0000;">&quot;Life Expectancy (yr)&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart.YAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart.AlternativeYAxes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:ChartAxis</span> <span style="color: #000066;">Minimum</span>=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #000066;">Maximum</span>=<span style="color: #ff0000;">&quot;100&quot;</span> <span style="color: #000066;">Title</span>=<span style="color: #ff0000;">&quot;Employment (%)&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart.AlternativeYAxes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><a href="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/chart.png"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/chart.png" alt="" title="Chart from C# application displaying data from F# class library" width="735" height="360" class="alignleft size-full wp-image-4983" /></a></p>
<p><strong>Solution 2: All F# Solution</strong></p>
<p>With F# 3.0, though, it&#8217;s now feasible to build WPF applications <em>entirely</em> in F#, without needing to put the user interface into C#.  In practice I know most readers of this blog will probably feel more at home in C# than in F# so they&#8217;ll want to use F# only for the core data processing anyway &#8212; but I think it&#8217;s interesting to know how F# 3.0 enables XAML support, plus there are a couple of things that may not be quite so obvious!  (This example is based on <a href="http://www.navision-blog.de/2012/03/22/wpf-designer-for-f/">Steffen Forkmann&#8217;s WPF Designer for F# announcement</a>, which is in turn based on <a href="http://sharp-gamedev.blogspot.de/">Johann Deneux&#8217;</a> XAML type provider.)</p>
<p>The first thing we need to do is create a Windows Application F# project.  There isn&#8217;t a template for this, but we can take our class library project, go into Properties > Application, and change the Output Type to Windows Application (and add a Program.fs file to contain the application code).  Or we can create a new F# Application project and change the Output Type from Console Application to Windows Application.</p>
<p>Next we need the XAML type provider.  This is available as a NuGet package from the FSharpx folks.  Right-click the F# project, choose Manage NuGet Packages, search for FSharpx.TypeProviders and click Install.  (<a href="https://github.com/fsharp/fsharpx">Learn more about FSharpx here.</a>)</p>
<p>We also need to add references to the WPF assemblies (WindowsBase, PresentationCore, PresentationFramework and System.Xaml) and to the WPF Elements DLL.</p>
<p>The last piece of plumbing we need is to handle the licensed controls in WPF Elements.  Copy the licenses.licx file from the WPF Elements Sample Explorer to the F# project directory, include it in the F# project and set its Build Action to Embedded Resource.</p>
<p>Now we&#8217;re ready to roll, where by &#8216;roll&#8217; I mean create an actual WPF window.</p>
<p>Right-click the project and choose Add New Item.  There&#8217;s no XAML template but just choose XML File and change the file extension to .xaml, e.g. MainWindow.xaml.  Replace the contents of the .xaml file with the following:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Window</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">xmlns:x</span>=<span style="color: #ff0000;">&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">xmlns:e</span>=<span style="color: #ff0000;">&quot;clr-namespace:Mindscape.WpfElements.Charting;assembly=Mindscape.WpfElements&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">Title</span>=<span style="color: #ff0000;">&quot;MainWindow&quot;</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;500&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;900&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:LineSeries</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding Boroughs}&quot;</span> <span style="color: #000066;">XBinding</span>=<span style="color: #ff0000;">&quot;{Binding Area}&quot;</span> <span style="color: #000066;">YBinding</span>=<span style="color: #ff0000;">&quot;{Binding MaleLifeExpectancy}&quot;</span> <span style="color: #000066;">SeriesBrush</span>=<span style="color: #ff0000;">&quot;Navy&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:LineSeries</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding Boroughs}&quot;</span> <span style="color: #000066;">XBinding</span>=<span style="color: #ff0000;">&quot;{Binding Area}&quot;</span> <span style="color: #000066;">YBinding</span>=<span style="color: #ff0000;">&quot;{Binding FemaleLifeExpectancy}&quot;</span> <span style="color: #000066;">SeriesBrush</span>=<span style="color: #ff0000;">&quot;Red&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:LineSeries</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding Boroughs}&quot;</span> <span style="color: #000066;">XBinding</span>=<span style="color: #ff0000;">&quot;{Binding Area}&quot;</span> <span style="color: #000066;">YBinding</span>=<span style="color: #ff0000;">&quot;{Binding Employment}&quot;</span> <span style="color: #000066;">YAxisTitle</span>=<span style="color: #ff0000;">&quot;Employment&quot;</span> <span style="color: #000066;">SeriesBrush</span>=<span style="color: #ff0000;">&quot;Green&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart.XAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:ChartAxis</span> <span style="color: #000066;">LabelRotation</span>=<span style="color: #ff0000;">&quot;90&quot;</span> <span style="color: #000066;">LabelStep</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">MajorTickSpacing</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart.XAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart.YAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:ChartAxis</span> <span style="color: #000066;">Minimum</span>=<span style="color: #ff0000;">&quot;65&quot;</span> <span style="color: #000066;">Maximum</span>=<span style="color: #ff0000;">&quot;90&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart.YAxis<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:Chart.AlternativeYAxes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;e:ChartAxis</span> <span style="color: #000066;">Minimum</span>=<span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #000066;">Maximum</span>=<span style="color: #ff0000;">&quot;100&quot;</span> <span style="color: #000066;">Title</span>=<span style="color: #ff0000;">&quot;Employment&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart.AlternativeYAxes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/e:Chart<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Window<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>One little nasty to watch out for: the F# XAML type provider currently handles only &#8216;clr-namespace&#8217; namespaces.  So we have to refer to the Mindscape.WpfElements.Charting namespace by name, instead of using the URI.  Other than that this is the same XAML as in the C# application.</p>
<p>Finally we need to write some code to launch this window and associate it with our view model.  In C#, the project template handled this for us but in F# we need to do it ourselves.  Fortunately all the hard work is done by the XAML type provider:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">open <span style="color: #000000;">System</span>
open <span style="color: #000000;">System</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Windows</span>
open FSharpx
&nbsp;
type MainWindow <span style="color: #008000;">=</span> XAML<span style="color: #008000;">&lt;</span><span style="color: #666666;">&quot;MainWindow.xaml&quot;</span><span style="color: #008000;">&gt;</span>  <span style="color: #008080; font-style: italic;">// creates the MainWindow type from the MainWindow.xaml file</span>
&nbsp;
let loadWindow<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">=</span>
  let window <span style="color: #008000;">=</span> MainWindow<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>  <span style="color: #008080; font-style: italic;">// creates a new instance of MainWindow</span>
  window<span style="color: #008000;">.</span><span style="color: #0000FF;">Root</span><span style="color: #008000;">.</span><span style="color: #0000FF;">DataContext</span> <span style="color: #008000;">&lt;-</span> Data<span style="color: #008000;">.</span><span style="color: #0000FF;">viewModel</span>
  window<span style="color: #008000;">.</span><span style="color: #0000FF;">Root</span>
&nbsp;
<span style="color: #008000;">&#91;</span><span style="color: #008000;">&lt;</span>STAThread<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#93;</span>
<span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> Application<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Run</span><span style="color: #008000;">&#40;</span>loadWindow<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">|&gt;</span> ignore</pre></div></div>

<p>You can now build and run the application, and you&#8217;ll find it works just like the C# one.  Of course, it has taken a bit more effort to set up, but that&#8217;s a one-off, and you can now enjoy using F# for your interaction logic as well as your business logic.</p>
<p><a href='http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/FSharpElements.zip'>You can download the source for the F# WPF Elements demo project here.</a>  You will need Visual Studio 11 Beta, and a copy of <a href="http://www.mindscapehq.com/products/wpfelements">Mindscape WPF Elements</a> (<a href="http://www.mindscapehq.com/products/wpfelements/download">download the free edition including a 60-day trial of the charting controls</a>).  (To run the program, you&#8217;ll also need to sign up for the free <a href="https://datamarket.azure.com/dataset/b6092d85-5dc4-49a8-90a0-5f65e7ee2eec">London Borough Profiles</a> data set on Azure Datamarket.)  If you have any questions or problems, post in the comments or the <a href="http://www.mindscapehq.com/forums/forum/15">support forum</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/04/29/using-wpf-elements-from-f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 27 April 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/04/26/nightly-news-27-april-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/04/26/nightly-news-27-april-2012/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 21:35:02 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[NHibernate Designer]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Elements]]></category>
		<category><![CDATA[Nightly News]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4965</guid>
		<description><![CDATA[WPF Elements Charting performance improvements The Chart control now provides a FinishedPlotting event Fixed a bug with displaying lots of data in a stacked chart Added support for customising the scheduler recurrence dialogs ScheduleFormatter now provides an option for customising the default name of newly created schedule items Fixed a bug in the TimePicker control [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brainpickings.org/index.php/2012/04/26/literary-map-of-san-francisco-puzzle/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/DeveloperNotes211.png" alt="" title="This would be kind of fun to do for Wellington too" width="344" height="64" class="alignleft size-full wp-image-4967" /></a></p>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Charting performance improvements</li>
<li>The Chart control now provides a FinishedPlotting event</li>
<li>Fixed a bug with displaying lots of data in a stacked chart</li>
<li>Added support for customising the scheduler recurrence dialogs</li>
<li>ScheduleFormatter now provides an option for customising the default name of newly created schedule items</li>
<li>Fixed a bug in the TimePicker control</li>
<li>You can now customise the background of individual cells, rows and columns of a DataGrid</li>
<li>The DataGrid no longer performs highlighting on mouse-over in RowAndCell mode, except when the mouse is over the row header</li>
<li>Added validation support to DataGrid DisplayMemberBinding</li>
<li>If you set the Value directly on a numeric text box, it now constrains the value to the permitted range instead of throwing an exception</li>
</ul>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Fix for error during database update if a design-time assembly could not be found</li>
<li>Fix for error in SaveChanges under heavy load</li>
<li>Improvements to grouping support: better support for functions and traversals in grouping keys</li>
<li>Change to allow non-nullable GUID, DateTime and blob columns to be added to existing SQLite tables</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Added an option to show generated files when choosing files to merge during minification</li>
</ul>
<p><strong>NHibernate Designer</strong></p>
<ul>
<li>Added support for table per subclass inheritance</li>
<li>Added support for creating MySQL MEDIUMTEXT and LONGTEXT columns</li>
</ul>
<p>All these features and fixes are in the current nightly builds &#8212; <a href="http://www.mindscapehq.com/downloads/">free editions from the Downloads page</a>, <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/04/26/nightly-news-27-april-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customizing the WPF scheduler dialog boxes</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/04/23/customizing-the-wpf-scheduler-dialog-boxes/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/04/23/customizing-the-wpf-scheduler-dialog-boxes/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 04:07:42 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[WPF Elements]]></category>
		<category><![CDATA[WPF Outlook Calendar]]></category>
		<category><![CDATA[WPF Scheduler]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4955</guid>
		<description><![CDATA[One of the controls in our WPF Elements control suite is the familiar Outlook styled Scheduler. This lets users add, edit and view appointments that are scheduled to occur at a particular date and time. Some of these actions such as editing a recurrence pattern are performed by the user changing values in a dialog [...]]]></description>
			<content:encoded><![CDATA[<p>One of the controls in our <a href="http://www.mindscapehq.com/products/wpfelements">WPF Elements control suite</a> is the familiar Outlook styled <a href="http://www.mindscapehq.com/products/wpfelements/controls/wpf-scheduler">Scheduler</a>. This lets users add, edit and view appointments that are scheduled to occur at a particular date and time. Some of these actions such as editing a recurrence pattern are performed by the user changing values in a dialog box as seen below.</p>
<p><a href="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/Recurrence-Dialog.png"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/Recurrence-Dialog.png" alt="Recurrence Dialog" title="Recurrence Dialog" width="524" height="497" class="alignnone size-full wp-image-4962" /></a></p>
<p>In the current nightly build we have made it easier to customize the template of these dialog boxes. By customizing the dialog boxes you can change the colors and styles of the various controls to suit the needs of you application. This also means you can localize the dialogs by changing the text labels. The best way to create a custom dialog style is to start with the code for the default style and then alter it however you need. Below is the default styling code for the dialog used for adding schedule items.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:BooleanToObjectConverter</span> <span style="color: #000066;">x:Key</span>=<span style="color: #ff0000;">&quot;RecurrenceButtonContentConverter&quot;</span> <span style="color: #000066;">TrueObject</span>=<span style="color: #ff0000;">&quot;Edit Recurrence&quot;</span> <span style="color: #000066;">FalseObject</span>=<span style="color: #ff0000;">&quot;Add Recurrence&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Style</span> <span style="color: #000066;">x:Key</span>=<span style="color: #ff0000;">&quot;ScheduleItemDialogStyle&quot;</span> <span style="color: #000066;">TargetType</span>=<span style="color: #ff0000;">&quot;ms:ScheduleItemDialog&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;Title&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;New Appointment&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;Template&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter.Value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ControlTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;LayoutRoot&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid.ColumnDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ColumnDefinition</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;70&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ColumnDefinition</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ColumnDefinition</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid.ColumnDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid.RowDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;22&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;22&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;22&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;22&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RowDefinition</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;Auto&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid.RowDefinitions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">Command</span>=<span style="color: #ff0000;">&quot;{x:Static ms:SchedulerCommands.EditRecurrenceCommand}&quot;</span> <span style="color: #000066;">Grid.Column</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;100&quot;</span> <span style="color: #000066;">HorizontalAlignment</span>=<span style="color: #ff0000;">&quot;Left&quot;</span></span>
<span style="color: #009900;">                            <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;{Binding HasRecurrence, Converter={StaticResource RecurrenceButtonContentConverter}, RelativeSource={RelativeSource TemplatedParent}}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">TextAlignment</span>=<span style="color: #ff0000;">&quot;Right&quot;</span> <span style="color: #000066;">VerticalAlignment</span>=<span style="color: #ff0000;">&quot;Center&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Subject:<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TextBlock<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBox</span> <span style="color: #000066;">Text</span>=<span style="color: #ff0000;">&quot;{Binding Subject, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">Grid.Column</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">TextAlignment</span>=<span style="color: #ff0000;">&quot;Right&quot;</span> <span style="color: #000066;">VerticalAlignment</span>=<span style="color: #ff0000;">&quot;Center&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;4&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Start time:<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TextBlock<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Orientation</span>=<span style="color: #ff0000;">&quot;Horizontal&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">Grid.Column</span>=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:DropDownDatePicker</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;205&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;0,0,10,0&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;{Binding StartDate}&quot;</span> <span style="color: #000066;">Format</span>=<span style="color: #ff0000;">&quot;Custom&quot;</span> <span style="color: #000066;">CustomFormat</span>=<span style="color: #ff0000;">&quot;dd/MM/yyyy&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:TimePicker</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;80&quot;</span> <span style="color: #000066;">SelectedTime</span>=<span style="color: #ff0000;">&quot;{Binding StartTime}&quot;</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding StartTimeList}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextBlock</span> <span style="color: #000066;">TextAlignment</span>=<span style="color: #ff0000;">&quot;Right&quot;</span> <span style="color: #000066;">VerticalAlignment</span>=<span style="color: #ff0000;">&quot;Center&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;6&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>End time:<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TextBlock<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Orientation</span>=<span style="color: #ff0000;">&quot;Horizontal&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #000066;">Grid.Column</span>=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:DropDownDatePicker</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;205&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;0,0,10,0&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;{Binding EndDate}&quot;</span> <span style="color: #000066;">Format</span>=<span style="color: #ff0000;">&quot;Custom&quot;</span> <span style="color: #000066;">CustomFormat</span>=<span style="color: #ff0000;">&quot;dd/MM/yyyy&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:TimePicker</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;80&quot;</span> <span style="color: #000066;">SelectedTime</span>=<span style="color: #ff0000;">&quot;{Binding EndTime}&quot;</span> <span style="color: #000066;">ItemsSource</span>=<span style="color: #ff0000;">&quot;{Binding EndTimeList}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;StackPanel</span> <span style="color: #000066;">Orientation</span>=<span style="color: #ff0000;">&quot;Horizontal&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;7&quot;</span> <span style="color: #000066;">Grid.Column</span>=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">Command</span>=<span style="color: #ff0000;">&quot;{x:Static ms:SchedulerCommands.OkCommand}&quot;</span> <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;Save &amp;amp; Close&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;95&quot;</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;23&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;0,18,0,0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">Command</span>=<span style="color: #ff0000;">&quot;{x:Static ms:SchedulerCommands.CancelCommand}&quot;</span> <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;Cancel&quot;</span> <span style="color: #000066;">Width</span>=<span style="color: #ff0000;">&quot;75&quot;</span> <span style="color: #000066;">Height</span>=<span style="color: #ff0000;">&quot;23&quot;</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;10,18,0,0&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/StackPanel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ControlTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Setter.Value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Setter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Style<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>The default styling code for all 3 dialog box templates can be <a href='http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/Default-Dialog-Styles.txt'>downloaded here</a>. You may notice that each style is also setting the Title property using a setter. This changes the title of the dialog window which is convenient for localization or to simply provide a different title. In order for the Scheduler control to use your custom styles, you just need to create an instance of the SchedulerFormatter and set the appropriate properties. This is demonstrated in the code below.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:SchedulerFormatter</span> <span style="color: #000066;">x:Key</span>=<span style="color: #ff0000;">&quot;Formatter&quot;</span></span>
<span style="color: #009900;">                       <span style="color: #000066;">ScheduleItemDialogStyle</span>=<span style="color: #ff0000;">&quot;{StaticResource ScheduleItemDialogStyle}&quot;</span></span>
<span style="color: #009900;">                       <span style="color: #000066;">RecurrenceDialogStyle</span>=<span style="color: #ff0000;">&quot;{StaticResource RecurrenceDialogStyle}&quot;</span></span>
<span style="color: #009900;">                       <span style="color: #000066;">DeleteRecurrenceDialogStyle</span>=<span style="color: #ff0000;">&quot;{StaticResource DeleteRecurrenceDialogStyle}&quot;</span></span>
<span style="color: #009900;">                       <span style="color: #000066;">DefaultScheduleItemName</span>=<span style="color: #ff0000;">&quot;New Schedule Item&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ms:Scheduler</span> <span style="color: #000066;">Formatter</span>=<span style="color: #ff0000;">&quot;{StaticResource Formatter}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Here I am also setting the DefaultScheduleItemName property which is also new in the latest nightly build. This lets you change the default name of newly created schedule items, which again is convenient for localization.</p>
<p>The current nightly build for the trial version can be <a href="http://www.mindscapehq.com/products/wpfelements/nightly-builds">downloaded from here</a>, or you can <a href="http://www.mindscapehq.com/store/myaccount">go to your account page</a> if you&#8217;re already a customer.</p>
<p>And that&#8217;s all you need to know to start creating your own custom dialog styles for the Scheduler. If you have any questions or need assistance with any of this, then <a href="http://www.mindscapehq.com/forums/forum/15">we&#8217;d love to hear from you in the forum</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/04/23/customizing-the-wpf-scheduler-dialog-boxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 20 April 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/04/19/nightly-news-20-april-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/04/19/nightly-news-20-april-2012/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 20:14:40 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Silverlight Elements]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Elements]]></category>
		<category><![CDATA[Nightly News]]></category>
		<category><![CDATA[Silverligh Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4948</guid>
		<description><![CDATA[If there&#8217;s one thing the weekly updates are about, it&#8217;s beards, and it looks like that laser-like focus is finally paying off. But if there&#8217;s a second thing, I guess it would have to be keeping customers informed about what&#8217;s new and improved in the current nightly builds. Here&#8217;s what we&#8217;ve been busy on this [...]]]></description>
			<content:encoded><![CDATA[<p>If there&#8217;s one thing the weekly updates are about, it&#8217;s beards, and <a href="https://twitter.com/#!/traskjd/status/192908927434899457">it looks like that laser-like focus is finally paying off</a>.  But if there&#8217;s a second thing, I guess it would have to be keeping customers informed about what&#8217;s new and improved in the current nightly builds.  Here&#8217;s what we&#8217;ve been busy on this week.</p>
<p><a href="http://www.beards.org/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/DeveloperNotes22.png" alt="" title="Inexplicably, site contains no discussion of functional programming" width="344" height="64" class="alignleft size-full wp-image-4950" /></a></p>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Big charting performance improvements.  We&#8217;ll have more to say about this in a future post.  Ho yes.</li>
<li>Fixed a chart zooming bug when using non-primitive numeric types</li>
<li>Fix for bug in .NET 4.0 TextBox when used in a numeric DataGrid column</li>
<li>Fixed potential crash if axis properties were updated in an unexpected order<br />
Added a Tag property to DataGridColumn</li>
<li>Added a DisplayMemberBinding property to DataGridColumn.  This simplifies creating complex bindings for a column without needing to create a custom template.</li>
</ul>
<p><strong>LightSpeed</strong></p>
<ul>
<li>You can now have multiple QueryFilterAttributes on a class, allowing you to build filters compositionally even in the absence of characterising interfaces.</li>
<li>Table names are no longer Pascalised if you have a design-time naming strategy and set UseClrNamingConventions to false</li>
<li>Added IOverrideClrConventions extension to IDesignTimeNamingStrategy to override default singularisation behaviour</li>
<li>Design-time assemblies with partial paths are now checked from the model directory as well as the current directory. This facilitates deployment of design-time assemblies via source control as part of the project.</li>
<li>Fix for error when performing a cast in LINQ Sum() or other aggregate operators but specifying the column in the Select()</li>
<li>Fixed projections into DateTime and nullable values when using query objects rather than LINQ</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Added option to default the &#8220;compile&#8221; setting to false</li>
<li>Added &#8216;stop on first error&#8217; option for when a changed file has a lot of dependencies</li>
<li>Fixes for non-ANSI characters in Sass</li>
</ul>
<p><strong>Silverlight Elements</strong></p>
<ul>
<li>Added initial tab-indent support to HTML editor.  Set CanHandleTabKey to enable this, and TabSize to customise the number of pixels that a tab indents by.</li>
</ul>
<p>The latest nightlies are always available <a href="http://www.mindscapehq.com/downloads/">on the Downloads page (free editions)</a> and <a href="http://www.mindscapehq.com/store/myaccount">in the Store (full editions)</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/04/19/nightly-news-20-april-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nightly news, 13 April 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/04/12/nightly-news-13-april-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/04/12/nightly-news-13-april-2012/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 21:21:20 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Silverlight Elements]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Diagrams]]></category>
		<category><![CDATA[WPF Elements]]></category>
		<category><![CDATA[Nightly News]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4913</guid>
		<description><![CDATA[LightSpeed Added a per-query IncludeFiltered flag to turn off implicit filtering (similar to IncludeDeleted) Added core support for SQL Server 2008 hierarchyid type Fixed an issue with aliasing when issuing a composed query with paging on SQL Server The designer now creates field name constants for special fields Fix for implicit filters not being applied [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.buzzfeed.com/cutedaily/cats-in-camouflage-5nz7"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/DeveloperNotes2.png" alt="" title="Mine tend to disguise themselves as obstacles" width="344" height="64" class="alignleft size-full wp-image-4915" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Added a per-query IncludeFiltered flag to turn off implicit filtering (similar to IncludeDeleted)</li>
<li>Added core support for SQL Server 2008 hierarchyid type</li>
<li>Fixed an issue with aliasing when issuing a composed query with paging on SQL Server</li>
<li>The designer now creates field name constants for special fields</li>
<li>Fix for implicit filters not being applied in join clauses</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Data grid star sizing improvements: support for a zero fill weight, new GridLength converter, fix for having to explicitly specify a weight</li>
<li>Fixed a bug in data grid column virtualisation</li>
<li>Improved pixel precision of MarkedStripeGrid</li>
<li>Added Orientation property to MarkedStripeGrid</li>
<li>Performance improvements for common charting data types</li>
</ul>
<p><strong>Silverlight Elements</strong></p>
<ul>
<li>You can now <a href="http://www.mindscapehq.com/blog/index.php/2012/04/11/customize-the-font-list-in-the-silverlight-html-editor/">customise the list of fonts in the HTML editor</a> toolbar</li>
<li>New properties on ScheduleFormatter for changing the content of most buttons</li>
<li>We&#8217;ve brought over some improvements from WPF Elements to facilitate building multi-schedulers in Silverlight</li>
</ul>
<p><strong>WPF Diagrams</strong></p>
<ul>
<li>Fix for editing node styles in Expression Blend</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Chirpy compatibility fix</li>
<li>Fix for Less syntax highlighting when specifying &#8220;&#8230;&#8221; as mixin arguments</li>
<li>Updated CoffeeScript compiler to 1.3.1</li>
<li>Added Iced CoffeeScript support</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/04/12/nightly-news-13-april-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 6 April 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/04/05/nightly-news-6-april-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/04/05/nightly-news-6-april-2012/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 15:59:06 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[NHibernate Designer]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Elements]]></category>
		<category><![CDATA[Nightly News]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4873</guid>
		<description><![CDATA[By the time you read this, we&#8217;ll be off enjoying the long weekend, so consider this a message from the dusty past about that great question of the day: what&#8217;s new in this week&#8217;s nightly builds. LightSpeed If you&#8217;ve got an aggregate in a where clause on a grouping statement, we can now translate that [...]]]></description>
			<content:encoded><![CDATA[<p>By the time you read this, we&#8217;ll be off enjoying the long weekend, so consider this a message from the dusty past about that great question of the day: what&#8217;s new in this week&#8217;s nightly builds.</p>
<p><a href="http://www.dangerousminds.net/comments/photos_of_women_operating_big_mainframe_computers_/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/04/DeveloperNotes21.png" alt="" title="But the thing about the past is, it really was more futuristic" width="344" height="64" class="alignleft size-full wp-image-4874" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>If you&#8217;ve got an aggregate in a where clause on a grouping statement, we can now translate that to a HAVING clause on the SQL query</li>
<li>Fix for an issue where the same association is declared in multiple leaves of a STI hierarchy with different reverse associations</li>
<li>Clearer error message when a DiscriminatorAttribute has no Attribute value</li>
<li>Improved support for expressing properties of SQL Server 2008 spatial types in queries.  We&#8217;ve also made some improvements around SqlDouble to Double conversion.</li>
<li>Fix for error when several threads raced to be the first to execute the same LINQ query, and the LINQ query involved a closure</li>
<li>Fixed an issue where a full text search could return an incorrect result if the text search returned a single hit, and that entity was already in the identity map, and there was a QueryExpression filter in addition to the full text search, and the entity in the identity map didn&#8217;t conform to the QueryExpression filter.  I hope you&#8217;re paying attention to this, because there&#8217;ll be a quiz later.</li>
<li>Initial support for generic entity types, which allow you to use the same utility entity type (such as Permission or AuditRecord) in associations with multiple kinds of other entities</li>
<li>You can now specify a DisconnectedDisplayNamedStrategy on ValidationContext for use on entities which are not part of a unit of work</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>DataGrid automatic column sizing and star sizing</li>
<li>Support for read-only columns when using a DataTable as the ItemsSource of a DataGrid</li>
<li>Added DataGrid.HighlightedItem property and associated change event and method</li>
<li>Added DataGrid.RowHeaderTemplate so you can control the appearance of row &#8216;headers&#8217; (those little doodads at the left of each row.  <em>You</em> know).  You can use this for things like row numbering.</li>
<li>DataGridWrapper now has a property for retrieving the encapsulated DataTable</li>
<li>Fixed an issue with rendering of the DataGrid frozen column shadow</li>
<li>We now re-render charts when the Series collection changes</li>
<li>Added IsSliderVisible option to show sliders on chart axes for panning and zooming.  You can also style the sliders using the (wait for it) SliderStyle property.</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Fix for Less compiler error is the file name or containing folder contained a single quote</li>
</ul>
<p><strong>NHibernate Designer</strong></p>
<ul>
<li>Added &#8216;formula&#8217; option for entity properties computed in SQL</li>
<li>Added support for one-way associations</li>
<li>Added DataMember options for one-to-many associations</li>
</ul>
<p>You know the drill &#8212; <a href="http://www.mindscapehq.com/downloads/">free editions from the Downloads page</a>, <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/04/05/nightly-news-6-april-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 30 March 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/03/29/nightly-news-30-march-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/03/29/nightly-news-30-march-2012/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 22:45:31 +0000</pubDate>
		<dc:creator>Jeremy Boyd</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[NHibernate Designer]]></category>
		<category><![CDATA[Nightly news]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4823</guid>
		<description><![CDATA[Ivan is off moonlighting as a luchador today, so its my turn to provide the weekly update. Its mostly been a week of bug fixes and working toward getting WPF Elements 5.1 out the door with a bunch of performance improvements and new features. Meanwhile we continued to beaver away on all the other products [...]]]></description>
			<content:encoded><![CDATA[<p>Ivan is off <a href="http://codemania.co.nz/#speakers" title="Le llaman el loco de pavo real" target="_blank">moonlighting as a luchador today</a>, so its my turn to provide the weekly update. Its mostly been a week of bug fixes and working toward getting WPF Elements 5.1 out the door with a bunch of performance improvements and new features. Meanwhile we continued to beaver away on all the other products of course :) Hereâ€™s whatâ€™s new in this weekâ€™s nightly builds.</p>
<p><a href="http://www.geek.com/articles/games/prince-of-persia-creator-finds-lost-source-code-23-years-later-20120329/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/03/DeveloperNotes22.png" alt="JD's box only contained some grainy .gif files and a copy of some poker game" title="JD's box only contained some grainy .gif files and a copy of some poker game"/></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>Fix for issue with eager loading when we have a STI hierarchy which has multiple branches where the eager load is on a separate branch to the derived type being worked on</li>
<li>Added support for expressing a HAVING clause within core querying engine, use the Group.Having property to apply this</li>
</ul>
<p><strong>NHibernate Designer</strong></p>
<ul>
<li>Fix for trying to apply a default to MySQL TEXT fields</li>
<li>Added support for foreign identity generator</li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Fixes relating to NaN axis values on some charting controls</li>
<li>General performance improvements</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>Added command line compiler tools for paid customers</li>
<li>Added combining for CoffeeScript</li>
</ul>
<p>As ever, nightly builds of <a href="http://www.mindscapehq.com/downloads/" title="Downloads">free editions are available from the downloads page</a>, and of <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/03/29/nightly-news-30-march-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly news, 23 March 2012</title>
		<link>http://www.mindscapehq.com/blog/index.php/2012/03/22/nightly-news-23-march-2012/</link>
		<comments>http://www.mindscapehq.com/blog/index.php/2012/03/22/nightly-news-23-march-2012/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 19:48:42 +0000</pubDate>
		<dc:creator>Ivan Towlson</dc:creator>
				<category><![CDATA[LightSpeed]]></category>
		<category><![CDATA[Silverlight Elements]]></category>
		<category><![CDATA[Web Workbench]]></category>
		<category><![CDATA[WPF Elements]]></category>

		<guid isPermaLink="false">http://www.mindscapehq.com/blog/?p=4757</guid>
		<description><![CDATA[Well, it has been a bitterly disappointing week for beard-fondling photos on the Mindscape blog. Kyle is going to have to up his game. On the plus side, this has left us with time to ship a bunch of updates and fixes. Here&#8217;s what&#8217;s new in this week&#8217;s nightly builds. LightSpeed The designer now defaults [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it has been a bitterly disappointing week for beard-fondling photos on the Mindscape blog.  Kyle is going to have to up his game.  On the plus side, this has left us with time to ship a bunch of updates and fixes.  Here&#8217;s what&#8217;s new in this week&#8217;s nightly builds.</p>
<p><a href="http://www.worldbeardchampionships.com/full-beard-freestyle-2011/"><img src="http://cdn.mindscapehq.com/blog/wp-content/uploads/2012/03/DeveloperNotes22.png" alt="" title="I didn't know beards could have entourages before" width="344" height="64" class="alignleft size-full wp-image-4758" /></a></p>
<p><strong>LightSpeed</strong></p>
<ul>
<li>The designer now defaults computed columns (and identity columns if they&#8217;re not the ID) to Load Only.  This is currently implemented for SQL Server only &#8212; let us know if you&#8217;d like it for other databases.  We also no longer infer validations on computed columns.</li>
<li>Fixed an error if you used an inheritance-based mocking framework to mock entities with associations</li>
<li>Fix for error updating database from designer after changing the maximum length of a string property on a concrete table inheritance base class</li>
</ul>
<p><strong>Silverlight Elements</strong></p>
<ul>
<li>New version of the RichTextEditor control.  Better.  Faster.  <em>Swooshier.</em></li>
</ul>
<p><strong>WPF Elements</strong></p>
<ul>
<li>Data grid performance improvements</li>
<li>Data grid hierarchical display</li>
<li>Fixed an issue with using a BindingList as a DataGrid items source</li>
<li>DataGrid now has a SelectedData property</li>
<li>Fix for DataGrid keyboard navigation in RowAndCell mode</li>
<li>DataGrid now has built-in support for user adding rows</li>
</ul>
<p><strong>Web Workbench</strong></p>
<ul>
<li>JavaScript and CSS &#8216;mash and minify&#8217; support</li>
<li>Fix for not handling Less escaped (~) literals when they used single instead of double quotes</li>
<li>Fix for misaligned CoffeeScript comment highlighting if file contained Unix line breaks</li>
<li>Fixed handling of underscored in unquoted URLs.  Unquoted URLs!  Forsooth!</li>
<li>Solution Explorer icons!  I can barely wait to see how this looks in Visual <del datetime="2012-03-22T03:25:00+00:00">Wasteland</del> Studio 11.</li>
</ul>
<p>As ever, nightly builds of <a href="http://www.mindscapehq.com/downloads/">free editions are available from the downloads page</a>, and of <a href="http://www.mindscapehq.com/store/myaccount">full editions from the store</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mindscapehq.com/blog/index.php/2012/03/22/nightly-news-23-march-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic (Requested URI is rejected)
Database Caching 4/21 queries in 0.012 seconds using disk: basic
Content Delivery Network via cdn.mindscapehq.com

Served from: www.mindscapehq.com @ 2012-05-22 10:57:40 -->
