DayPath Journal

Delicious Dumper: Old Silverlight Links

Here lies a collection of Silverlight links I used for my research in years past. My research technique depends heavily on my Delicious ‘Funky KB’- or ‘Blog’-tagged link collections. These collections are eventually processed into a document like this and deleted from Delicious (to ensure that my data is not in the hands of a potentially non-helpful third party—as of this writing, you can see by the thousands of links still with Delicious, that I still need Delicious to “do no evil”).

CollectionViewSource as ItemSource problem

RadComboBox treats all items sources as IEnumerable, hence it does not automatically update ICollectionView if such is provided. This looks like a nice feature, so I will add it to the product backlog. We will include it in the upcoming major release Q3 2009, scheduled after less than two months.” — Valeri Hristov, Telerik

5+ Ways to Reduce your .Xap Size

“In the Telerik’s Silverlight world the solution is called Assembly Minifier. It reduces the compiled [assembly’s] size by removing the controls (code and resources) that your application doesn't need during run-time. The result is smaller assemblies, smaller xap, which results in faster download time and faster application loading. You can read my post for more information on how to use the tool.”

Free UI Controls & Components

I’m noticing that the Silverlight freebies are being updated. It’s been about two years.

Why no LoadSize?

“Unfortunately, the LoadSize feature is the only feature that RadDomainDataSource lacks compared to the stock DomainDataSource.”

The “stock” DomainDataSource. Surely refers to the control in the Silverlight Toolkit. I wasted more than two hours thinking that the “stock” control was better than Telerik’s. I need to use the Telerik RadDomainDataSource because it supports the paging and sorting features of the Telerik grid. The GridView will behave strangely when it’s backed by the “stock” DomainDataSource.

Introducing RadDomainDataSource for Silverlight

RadDomainDataSource is a Silverlight control that provides the missing link between Telerik Data Controls and WCF RIA Services.

Not all the cells available in e.Row.Cells of RowLoaded event

This problem is the slippery slope into the performance over maintainability chasm that makes the Telerik grid a “challenge” to work with… To support performance-enhancing row virtualization features you can’t just walk up to a Telerik grid and ask it about its rows.

DataForm in User Control

“The first problem we encountered was that data annotations are not passed through when the RadDataForm is in mode AutoGenerateFields = False.”

I got around this problem by sending MVVM Light messaging around the DataForm.AutoGeneratingField event.

How to use Genreric AggregateFunction?

“Can anyone provide a simple example on how to use Generic AggregateFunction for a GridViewExpressionColumn?”

I wrote an extension method to send GridViewExpressionColumn visuals to a View Model (yet another violation of MVVM).

GridView filtering with distinct values and converter

A reminder (for me): “One of the most common pitfalls is thinking that an IValueConverter defined on the DataMemberBinding of the column will affect the data operations in any way. It will not. The DataMemberBinding IValueConverter and the DataFormatString of the column are used for UI purposes only. They can only change the appearance of data into something more user-friendly such as $ 2.22, but they do not play any role in the data engine.”

Task continuation on UI thread

Another reminder: “Call the continuation with TaskScheduler.FromCurrentSynchronizationContext()

Silverlight 4—Copy/Paste From Clipboard

News with a low learning curve: “For security purposes, access to the clipboard is only allowed through a user-initialed event. For example, you couldn’t have a timer running in the background to constantly get text from the clipboard.”

Can Silverlight initiate Page Refreshes?

Interesting but currently not recommended: “Why not simply stay on the Silverlight side and call System.Windows.Browser.HtmlPage.Document.Submit(); This works if the page has a <form/> element on it (e.g. any Web Forms page). Without a <form/> element (e.g. many ASP.NET MVC pages), there is nothing to submit, and you get an InvalidOperationException.”–Richard Beier

Silverlight 5: beautifying fonts

TextFormattingMode: this option controls the way glyphs are generated. You have two possible settings: Ideal or Display. Ideal will generate nicer text then fonts size is large enough. Display will generate full-pixel glyphs which are not so nice when font is large, but are better for small text. TextHintingMode: this option controls the text hinting, and its main purpose is to allow the developer to disable text optimization when animating a text, to vastly improve performance at the expense of readability. Always set to Fixed to improve readability, set to Animated only when animating text. TextRenderingMode: this option controls font antialiasing settings. You have several options here: Aliased means to turn off antialiasing altogether. ClearType will enable the ClearType technology, which will employ full color antialiasing to the fonts. Grayscale will antialias fonts using grayscale only. Auto will try to guess the best setting for you.”

Why am I not getting keyboard input events when in full screen mode?

“When a Silverlight plug-in is in full-screen mode, it disables most keyboard events. This limitation of keyboard input during full-screen mode is a security feature, and is intended to minimize the possibility of unintended information being entered by a user. In full-screen mode, the only input allowed is through the following keys. UP ARROW, DOWN ARROW, LEFT ARROW, RIGHT ARROW, SPACEBAR, TAB, PAGE UP, PAGE DOWN, HOME, END, ENTER…”

DomainDataSource Error Handling

This Jeff Handley article is not about Telerik’s RadDomainDataSource but it did introduce me (probably) to the SubmittedChanges event.

Text Trimming in Silverlight 4

“The TextBlock control contains a new property in Silverlight 4 called TextTrimming that can be used to add an ellipsis (…) to text that doesn’t fit into a specific area on the user interface.”

How can I share a VisualStateManager between two (or more) XAML files?

“The above appears possible within WPF however it is not possible in SL. As of current it does not appear the [ability] to reuse a Storyboard or VisualState is possible in SL. You should still be able to achieve what you are trying to do by encapsulating the VisualStateManager behavior within a style applied to a custom control. This would provide you the single point of failure you are looking for…”

Using the Visual Studio Async CTP with RIA Services

A 2010 introduction to RIA Services by Kyle McClellan.

Ensuring That Your Silverlight Applications Work with Silverlight 5

Introduces Silverlight “quirks mode”…

Silverlight RIA Services and Basic, Anonymous Authentication

I’m not sure that this one helped me use NTLM under Silverlight.

WCF Data Services vs. WCF RIA Services—Making the Right Choice

This article is actually from 2012.

WCF, Data Services and RIA Services Alignment Questions and Answers

Okay this one is from 2010.

Silverlight and WCF RIA Services (6–Validation)

“If I want to get validation problems for the ‘whole object’ displayed in the UI then (AFAIK) I need to have a binding that is interested in the ‘whole object’…”

RIA Services Validation: Using ValidationContext (Cross-Entity Validation)

It helps (me) to point out that Jeff’s “cross-entity” validation example is confined to entities of the same type and does not include an asynchronous call to a server layer.

Understanding the Silverlight Dispatcher

“If you use the MVVM light toolkit you could use the DispatcherHelper class in the Galasoft.MvvmLight.Threading namespace in the Extras dll. It checks the access and uses a static property for the dispatcher, similar to the SmartDispatcher.”

Custom Dependency Objects and Dependency Properties

“When Should You Implement a Dependency Property? …You want the property to be settable in a style. …You want the property to be a property target that supports data binding. …You want the property to support an animated value, using the Silverlight animation system…”

Dependency Properties in XAML for Windows 8 Apps

More evidence that all this “dead” Silverlight stuff I’m learning here lives on in Windows 8 apps.

Common mistakes while using ObservableCollection

“A common misconception is that data binding [for collections] requires ObservableCollection. This is not true. Data binding works against anything that implements IEnumerable. You can data bind a list box directly to a List, if you want.”

Multiple-Selection ComboBox for Silverlight

This sample has some ‘issues’: it uses ItemContainerStyle instead of ItemTemplate for binding to data; also, it provides no way to sync ticking the check box with selecting an item…

Rich Data Forms in Silverlight 4 Beta

“With support for IDataErrorInfo as well as INotifyDataErrorInfo, you no longer have to raise exceptions just to validate your classes.”

Inheritance in Data Models

“On the root class, you must include in the KnownTypeAttribute attribute any of the derived types that you want to expose.”

DomainDataSource Filters and Parameters

The Telerik RadDomainDataSource uses similar filtering patterns to this Silverlight Toolkit control.

VS 2012 XML Design time error

“When using this with VS 2012 I get this design time error: "The type 'EventToCommand' from assembly 'GalaSoft.MvvmLight.Extras.SL5' is built with an older version of the Blend SDK, and is not supported in a Silverlight 5 project." I installed the package, but My assemblies are still versioned I miss something?”