Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将Selecteditem或Clickevent添加到自定义日历?_C#_Wpf_Onclick_Calendar_Selecteditem - Fatal编程技术网

C# 如何将Selecteditem或Clickevent添加到自定义日历?

C# 如何将Selecteditem或Clickevent添加到自定义日历?,c#,wpf,onclick,calendar,selecteditem,C#,Wpf,Onclick,Calendar,Selecteditem,我有一个自定义日历控件,它将文本与日期关联,而不是DatePicker样式的控件。此自定义控件有一个带有属性注释的Day类: public string Notes { get { return notes; } set { notes = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChanged

我有一个自定义日历控件,它将文本与日期关联,而不是DatePicker样式的控件。此自定义控件有一个带有属性注释的Day类:

public string Notes
    {
        get { return notes; }
        set
        {
            notes = value;
            if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Notes"));
        }
    }
在实际的Calendar类中,我有一个事件处理程序:

public event EventHandler<DayChangedEventArgs> DayChanged;
然后在实际表单上,我可以使用这个创建的事件DayChanged来触发表单后面的方法:

 <PersonnelTracker:Calendar x:Name="Calendar" DayChanged="Calendar_DayChanged"/>

 private void Calendar_DayChanged(object sender, DayChangedEventArgs e)
    {

    }

好的,我认为这是很简单的。您可以对日历中的每个“天”使用
按钮
,也可以对每天当前包含的任何元素使用一个
PreviewMouseDown
事件


就我个人而言,我宁愿使用
按钮
,或者进一步考虑,使用
切换按钮
会更好。
ToggleButton
具有
IsChecked
属性,您可以使用转换器,甚至可能只是一个
触发器,将其绑定到
Background
属性。这样,您就可以轻松地突出显示选定的日期。

您的问题有点不清楚。。。您所说的“在日历上选择一天或一个位置并将其触发到表单后面的方法”是什么意思?还请描述或添加一个图像,详细说明控件的外观。好的,我想我基本上理解了。当你说的时候,为每天添加一个按钮。你的意思是我应该在每个方块上添加一个按钮,还是让每个方块/天都成为一个按钮?是的,我的意思是每个方块都可以是一个
切换按钮
,但是使用
样式
,使它看起来像一个普通的方块。
 <PersonnelTracker:Calendar x:Name="Calendar" DayChanged="Calendar_DayChanged"/>

 private void Calendar_DayChanged(object sender, DayChangedEventArgs e)
    {

    }
foreach (Day item in Calendar.Days)
            {

            }