bobbyderosa:I typically do my binding in markup - unless its more complex or just makes sense to use code-behind. Does MCML not allow you to modify the UI from code?
Can you provide a little more detail about the "better integration w/ Media Center" that MCML provides?
Thanks for the quick reply!
In WPF you can bind your XAML to the partial class that is created alongside it by putting this.DataContext = this in the constructor of the partial class, or you can put DataContext="{Binding RelativeSource={RelativeSource Self}}" in the XAML window/page element. You can then put {Binding Path=propertyname, Mode=TwoWay} as the data source for your UI element (e.g. <CheckBox IsChecked="{..}">), and define properties in your class firing OnPropertyChanged when the setter is accessed.
In MCML you can create the properties in exactly the same way in a class (I create a class per page, with the same name as the MCML file - e.g. DisplayPage.mcml and DisplayPage.cs). Inherit your class from ModelItem and you can then access FirePropertyChanged in your setter to notify your MCML that a property has changed. To "bind" the code behind, pass a property into the page (I call it "Page" for some reason :) and then bind each individual property using a <Binding> rule.
For integration differences, have a look at both the other comments in this post but also search for XBAP, XAML, and WPF in the forum - there are a number of posts about it. The biggest benefit (not mentioned in any posts that I can recall) is that the animations in MCML are much easier (IMHO) than in WPF. The worst feature of WPF in Media Center for me is that it is overlaid on the Media Center surface rather than being in it, like MCML so the transition between Media Center and the XBAP is ugly.
Cheers,
Andrew