【发布时间】:2017-05-02 15:45:46
【问题描述】:
我想从我的 ViewModel 到我的 XAML 日历视图中的选定日期(单个)进行两种方式绑定。 但是我们没有依赖属性来做这件事。
怎么办?
编辑: 我试过的代码,但我得到了错误。 它结合了这两个主题: How to use CalenderView in UWP MVVM How to select rang of dates on finger slide on Calendar Control - UWP Win10 VS2015 XAML:
<CalendarView MinHeight="250" MaxHeight="500" MaxWidth="720" FontWeight="Normal"
DayItemFontWeight="Light" MinWidth="100"
SelectionMode="Single"
Style="{StaticResource Mahcalenderstyle}" Visibility="Visible"
HorizontalAlignment="Stretch" x:Name="MyCalendarView" DisplayMode="Month" Margin="9,25,9,0"
VerticalAlignment="Top" SelectedDatesChanged="CalendarView_SelectedDatesChanged"
CalendarViewDayItemStyle="{StaticResource CalendarViewDayItemStyle1}"
/>
还有我的虚拟机:
private DateTimeOffset _selecteddate;
public DateTimeOffset SelectedDate
{
get
{
return _selecteddate;
}
set
{
if (_selecteddate != value)
{
_selecteddate = value;
if (PropertyChanged != null)
{
PropertyChanged(this,
new PropertyChangedEventArgs("SelectedDate"));
}
}
}
}
public CalendarViewModel()
{
SelectedDate = DateTimeOffset.Now;}
帮手:
public static class CalendarViewHelper
{
public static IList<DateTimeOffset> GetSelectedDates(DependencyObject obj)
{
return (IList<DateTimeOffset>)obj.GetValue(SelectedDatesProperty);
}
public static void SetSelectedDates(DependencyObject obj, IList<DateTimeOffset> value)
{
obj.SetValue(SelectedDatesProperty, value);
}
public static readonly DependencyProperty SelectedDatesProperty =
DependencyProperty.RegisterAttached("SelectedDates", typeof(IList<DateTimeOffset>), typeof(CalendarView),
new PropertyMetadata(null, (d, e) =>
{
var cv = d as CalendarView;
var dates = e.NewValue as IList<DateTimeOffset>;
if (cv != null && dates != null)
{
foreach (var date in dates)
{
cv.SelectedDates.Add(date);
}
}
}));
}
【问题讨论】:
-
到目前为止你尝试了什么?
-
@NoorAshuvo 没什么特别的。我什么也没找到:(stackoverflow.com/questions/37258070/…我做到了,但没有工作
-
请分享您尝试过的代码,否则您将得不到太多帮助。
-
@Alex 添加了一些代码:)