O controle Calendar do WPF e muito parecido com o MonthCalendar do WindowsForms. Porem como muito se acontece no WPF voce tem que abrir a cabeca quando quer adicionar uma funcionalidade mesmo que ela fosse muito facil no WindowsForms. Isso se deve ao fato do WPF possui seus controles muito mais poderosos, porem poder nao quer dizer mais simples de ser utilizado.Para fazer a mesma funcionalidade do BoldedDates do MonthCalendar voce tem que trabalhar com CalendarDayButtonStyle em conjunto com o IValueConverter.Caso voce ja saiba as datas que devem ficar bold, voce pode fazer da seguinte maneira:1) Declare seu convert:namespace WPFBoldDates{ public class BoldDateConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if(System.Convert.ToDateTime(value) == new DateTime(2011, 06, 06)) { return FontWeights.Bold; } return FontWeights.Normal; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return value; } }} 2) Configura o style: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:my="clr-namespace:WPFBoldDates" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <my:BoldDateConverter x:Key="boldConverter" /> </Window.Resources> <Grid> <Calendar x:Name="calendario"> <Calendar.CalendarDayButtonStyle> <Style TargetType="CalendarDayButton"> <Setter Property="FontWeight" Value="{Binding Converter={StaticResource boldConverter}}" /> </Style> </Calendar.CalendarDayButtonStyle> </Calendar> </Grid></Window>Pronto, o dia 06/06/2011 ficara em negrito.Caso queira trabalhar com datas dinamicas voce pode utilizar um CollectionViewSource.1) Adicione um recurso para seu Window do tipo CollectionViewSource e passe ela como parametro do seu binding:<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:my="clr-namespace:WPFBoldDates" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <my:BoldDateConverter x:Key="boldConverter" /> <CollectionViewSource x:Key="dates" /> </Window.Resources> <Grid> <Calendar x:Name="calendario"> <Calendar.CalendarDayButtonStyle> <Style TargetType="CalendarDayButton"> <Setter Property="FontWeight" Value="{Binding Converter={StaticResource boldConverter}, ConverterParameter={StaticResource dates}}" /> </Style> </Calendar.CalendarDayButtonStyle> </Calendar> </Grid></Window>2) No construtor do seu Window inicialize o CollectionViewSource:public partial class MainWindow : Window{ public MainWindow() { InitializeComponent(); List<DateTime> dates = new List<DateTime>(); // So para demonstracao, voce pode optar por ir no banco de dados dates.Add(new DateTime(2011, 6, 6)); CollectionViewSource source = FindResource("dates") as CollectionViewSource; source.Source = dates; }} 3) Para finalizar ajuste seu IValueConverter: public class BoldDateConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { List<DateTime> dates = (parameter as CollectionViewSource).Source as List<DateTime>; if(dates.Contains(System.Convert.ToDateTime(value))) return FontWeights.Bold; return FontWeights.Normal; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return value; } }} Como voce pode ver, um tanto grande nosso esforco, porem nao se limite apenas a usar o bold. Com style vocde formatar seu botao completamente para que ele atenda suas necessidades.Ate a proxima. O WPF assim como o Silverlight usam o evento PropertyChanging da interface INotifyPropertyChanging para atualizar os bindings dos controles.As entidades do EntityFramework ja tratam isso pra voce, por isso voce nao tem que se preocupar, veja um exemplo:[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)][DataMemberAttribute()]public string Nome{ get { return _Nome; } set { OnNomeChanging(value); ReportPropertyChanging("Nome"); _Nome= StructuralObject.SetValidValue(value); ReportPropertyChanged("Nome"); OnNomeChanged(); }} Porem, quando se ha um relacionamento como, por exemplo, uma pessoa possui varias compras, e voce esta trabalhando com a entidade Compra, se voce fizer:compra.Pessoa = pessoa;e caso o seu TextBox esteja com o binding para o Nome da Pessoa relacionado:<TextBox Text="{Binding Pessoa.Nome}" />o texto do TextBox nao sera atualizado porque nao ha eventos que notifique essa mudanca, veja como e implementado o get e o set de Pessoa:[XmlIgnoreAttribute()][SoapIgnoreAttribute()][DataMemberAttribute()][EdmRelationshipNavigationPropertyAttribute("Model", "FK__Pessoa_Compra", "Pessoa")]public Pessoa Pessoa{ get { return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Pessoa>("Model.FK__Pessoa_Compra", "Pessoa").Value; }