WPF 바인딩에 문제가 있습니다. 매월 Calendar 컨트롤을 보여주는 ItemsControl에 Month 목록을 바인딩하고 싶습니다. 그러나 렌더링 된 각 달력에는 바운드 DateTimes가 아니라 DateTime.Now가 표시됩니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까?WPF : DateTime 유형의 viewmodel 속성을 ItemsControl 내의 Calendar에 바인딩합니다.
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>
** 컬렉션이 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;
}
CalendarMonth 뷰 모델 :
public class CalendarMonth
{
private DateTime _currentDate;
public DateTime CurrentDate
{
get { return _currentDate; }
set { _currentDate = value; }
}
}
그리고 컬렉션은 ItemsControl에에 바인딩 :
public class CalendarList : ObservableCollection<CalendarMonth>
{
}
을 이제 결과 :
왜 이런 일이 있습니까?
편집 : <Calendar DisplayDate="{Binding CurrentDate, Mode=OneWay}" />
을 제공하면 바인딩이 작동합니다.
Markus Hütter가 대답해야합니다. 너 해봤 어? – publicgk