【问题标题】:WPF Calendar selecteddate not binding + single click to select date?WPF日历选择日期不绑定+单击选择日期?
【发布时间】:2015-06-13 16:14:10
【问题描述】:

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

我正在使用 WPF 和 MVVMC 模式。

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

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

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

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

【问题讨论】:

    标签: c# wpf date calendar


    【解决方案1】:

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

    【讨论】:

    • 当我设置显示日期和选定日期时它正在工作。但是我现在如何将它用于选定的日期?
    • context.Visitors.FirstOrDefault(x =&gt; x.VisitorId == visitorId); 已从数据库中选择。您从数据库中选择的方法是什么?
    • 对于单个日期,我使用与您描述的相同的方式,但是对于一个日期范围,我有 visitor.presences.addrange,到目前为止一切顺利,我在我的存在中获得了所有数据,但我在 xaml 上出错,说存在没有可访问的设置器。因此,就目前而言,单个日期就像一种魅力,但一系列日期仍然是不行的。
    猜你喜欢
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    相关资源
    最近更新 更多