WPF: vinculando a propriedade viewmodel do tipo DateTime ao calendário dentro de ItemsControl
Eu tenho um problema com a ligação WPF. Quero vincular uma lista de meses a um ItemsControl que mostra um controle de calendário para cada mês. Mas cada Calendário renderizado mostra DateTime.Now, não o DateTimes vinculado. Alguém sabe por que isso está acontecendo?
Isto é o que eu tenho até agora:
O MainWindow.xaml
<Window x:Class="CalendarListTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ItemsControl x:Name="calendarList">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Calendar DisplayDate="{Binding CurrentDate}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
** O local em que a coleção é atribuída ao ItemsSource **
private void Window_Loaded( object sender, RoutedEventArgs e )
{
CalendarList list = new CalendarList( );
list.Add( new CalendarMonth( ) { CurrentDate = DateTime.Parse( "1.1.1979" ) } );
list.Add( new CalendarMonth( ) { CurrentDate = DateTime.Parse( "1.2.1979" ) } );
list.Add( new CalendarMonth( ) { CurrentDate = DateTime.Parse( "1.3.1979" ) } );
calendarList.ItemsSource = list;
}
O modelo do CalendarMonth View:
public class CalendarMonth
{
private DateTime _currentDate;
public DateTime CurrentDate
{
get { return _currentDate; }
set { _currentDate = value; }
}
}
E a coleção para vincular ao ItemsControl:
public class CalendarList : ObservableCollection<CalendarMonth>
{
}
Agora, o resultado:
Por que isso está acontecendo?
editar: Ao fornecer<Calendar, DisplayDate="{Binding CurrentDate, Mode=OneWay}" />
a ligação funciona.