读书人

WPF自定义日历控件解决思路

发布时间: 2012-04-25 19:32:32 作者: rapoo

WPF自定义日历控件
http://download.csdn.net/detail/samsone/4243102
Changed事件该怎么样改下?
我第1次选择时间正常、 第2次选择同样的时间就不会响应...

[解决办法]

C# code
public NcCalendarControl() {    this.SetValue(ItemsProperty, new NcCalendar(DateTime.Now));    Items.SelectedChanged += new EventHandler(Items_SelectedChanged);    this.Loaded += OnLoaded;}void OnLoaded(object sender, RoutedEventArgs e) {    FindChild<ToggleButton>(this, p => {        Console.WriteLine(p.GetType().Name);        p.Click += (s1, e1) => {            Items_SelectedChanged(p, EventArgs.Empty);        };    });}private T FindChild<T>(DependencyObject parent, Action<T> invocation) where T : DependencyObject {    if (parent == null) return null;    T childElement = null;    int childrenCount = VisualTreeHelper.GetChildrenCount(parent);    for (int i = 0; i < childrenCount; i++) {        var child = VisualTreeHelper.GetChild(parent, i);        if (child is T) {            invocation(child as T);        }        FindChild<T>(child, invocation);    }    return childElement;}
[解决办法]
那就在每个Toggle加上Click
然后先Click,然后Select
Click每次触发,而Select则是改变触发

读书人网 >C#

热点推荐