简短信息:我正在尝试制定日托中心管理计划,其中大多数是访客"每天来这里,但有时他们想要额外1天或想留在家里。所以我想使用一个日历,用户可以选择访问者来的日期。
我正在使用WPF和MVVMC模式。
问题1,我在数据库中有访问者A的日期,但是当我尝试绑定到选定日期时,它不起作用。如果我在文本框中阅读日期,我会正确地看到日期。
问题2,我不能使用calendarcontrol的选择日期是否有工作?用户需要能够选择和查看超过1个日期。问题3,有什么办法可以修改日历,这样每个日期都会像复选框一样运行,如果我想选择更多日期我需要按住CTRL而我真的想要一次点击选择保持程序易于使用。
非常感谢, 顺便说一下,我只是一个初学程序员,我没有很多经验,我只有一个好主意,我想非常正确地解决这个问题,所以请放轻松我。
答案 0 :(得分:0)
您应该同时设置DisplayDate="{Binding RegisterDate}"
和SelectedDate="{Binding RegisterDate}"
。
试一试:
Xaml代码:
<Calendar x:Name="MyCalender" DisplayDate="{Binding RegisterDate}" SelectedDate="{Binding RegisterDate}" />
<TextBox x:Name="TxtVisitorId" />
<Button Name="BtnBindDate" Click="BtnBindDate_OnClick" Content="SetCurrentDate"/>
Cs代码:
private void BindData(int visitorId)
{
using (var context = SampleContext.GetContext())
{
var visitor = context.Visitors.FirstOrDefault(x => x.VisitorId == visitorId);
MyCalender.DataContext = visitor;
}
}
private void BtnBindDate_OnClick(object sender, RoutedEventArgs e)
{
var id = int.Parse(TxtVisitorId.Text);
BindData(id);
}
访客类:
public class Visitor
{
[Key]
public int VisitorId { get; set; }
public string Name { get; set; }
public DateTime RegisterDate { get; set; }
}