WPF 日历选定日期未绑定 + 单击以选择日期
本文关键字:日期 单击 选择 绑定 日历 WPF | 更新日期: 2023-09-27 17:55:51
简短信息:我正在尝试开发一个日托中心管理计划,大多数"访客"每天都来这里,但有时他们想多来一天或想呆在家里。所以我想使用一个日历,用户可以在其中选择访问者来的日期。
我正在使用 WPF 和 MVVMC 父子。
问题 1,我在数据库中有访问者 A 的日期,但是当我尝试绑定到所选日期时它不起作用。 如果我在文本框中读取日期,我会正确看到日期。
问题 2,我无法使用日历控件的选定日期是否有解决方法? 用户需要能够选择和查看超过 1 个日期。
问题 3,有什么方法可以修改日历,以便每个日期都像复选框一样运行,如果我想选择更多日期,我需要按住 CTRL,我真的想要单击一下即可选择以保持程序易于使用。
多谢顺便说一句,我只是一个初级程序员,我没有很多经验,我只有一个好主意,我想非常正确地解决这个问题,所以请放轻松。
您应该同时设置 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; }
}