C# 如何将Selecteditem或Clickevent添加到自定义日历?
我有一个自定义日历控件,它将文本与日期关联,而不是DatePicker样式的控件。此自定义控件有一个带有属性注释的Day类: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
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)
{
}