我需要引用Calendar
对象中的DatePicker
。
我觉得这很容易:
DatePicker datePicker = new DatePicker();
Calendar calendar = datePicker.Calendar;
但Calendar
中没有DatePicker
属性。
有什么办法可以获得这个参考吗?
答案 0 :(得分:2)
试试这个:
private void Window_ContentRendered(object sender, EventArgs e)
{
// Find the Popup in template
Popup MyPopup = FindChild<Popup>(MyDatePicker, "PART_Popup");
// Get Calendar in child of Popup
Calendar MyCalendar = (Calendar)MyPopup.Child;
// For test
MyCalendar.BlackoutDates.Add(new CalendarDateRange(
new DateTime(2013, 8, 1),
new DateTime(2013, 8, 10)
));
}
Note:
仅在控件完全加载时才使用FindChild
,否则无法找到它并提供 null 。在这种情况下,我将此代码放在ContentRendered
的{{1}}事件中,该事件表明窗口的所有内容都已成功加载。
Window
的列表:
FindChild<>
答案 1 :(得分:0)
试试这段代码:
Popup popup = Template.FindName("PART_Popup", this) as Popup;
_calendar = (Calendar)popup.Child;