WPF 日历选定日期未绑定 + 单击以选择日期

本文关键字:日期 单击 选择 绑定 日历 WPF | 更新日期: 2023-09-27 17:55:51

简短信息:我正在尝试开发一个日托中心管理计划,大多数"访客"每天都来这里,但有时他们想多来一天或想呆在家里。所以我想使用一个日历,用户可以在其中选择访问者来的日期。

我正在使用 WPF 和 MVVMC 父子。

问题 1,我在数据库中有访问者 A 的日期,但是当我尝试绑定到所选日期时它不起作用。 如果我在文本框中读取日期,我会正确看到日期。

问题 2,我无法使用日历控件的选定日期是否有解决方法? 用户需要能够选择和查看超过 1 个日期。

问题 3,有什么方法可以修改日历,以便每个日期都像复选框一样运行,如果我想选择更多日期,我需要按住 CTRL,我真的想要单击一下即可选择以保持程序易于使用。

多谢顺便说一句,我只是一个初级程序员,我没有很多经验,我只有一个好主意,我想非常正确地解决这个问题,所以请放轻松。

WPF 日历选定日期未绑定 + 单击以选择日期

您应该同时设置 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; }
}