In the last post, I introduced a command button for use in Media Center add-ons. In doing so, I demonstrated the idea of input focus, Command objects and rules to dictate behaviour and data-binding. All of these concepts are transferrable to this instalment’s topic: A List Control (with Selected Item Tracking) A simple way of… Continue reading

Last time, I gave a broad overview of the Windows Media Center SDK and introduced my (then-nameless) first add-on, mceNetworkCopy. This instalment (and the next few) of my series on developing for Media Center covers the controls and visual elements needed for the add-on. Where possible, i’m trying to match the standard look-and-feel of Media… Continue reading

Presents sequences (instances of IEnumerable or IEnumerable) as logical aggregations of data as an alternative to the traditional view of a persistent collection. Demonstrates how LINQ operators treat both persisted and non-persisted sequences equally (even infinite sequences). Introduces the LINQ Concat<> operator and explains how its result can be used like a database view. Shows how to bind controls to instances of IEnumerable using a list wrapper, as well as explaining the advantages presented by doing so. Continue reading

Regular Windows Forms data-binding can only bind to the properties directly belonging to each list item. This post explains how to bind to properties of properties (and so on, recursively) by creating a special collection class that exposes nested properties using ITypedList and PropertyDescriptor. You can use AggregationBindingList as a data source for the ComboBox, ListBox and DataGridView controls. Continue reading