简体   繁体   中英

Click event on calendar control

I have added a click event on the calendar control. But with my implementation, this event don't work.

My code in Cal.cs control:

#region click
public static RoutedEvent ClickEvent =
EventManager.RegisterRoutedEvent("Click", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(Cal));

public event RoutedEventHandler Click
{
    add { AddHandler(ClickEvent, value); }
    remove { RemoveHandler(ClickEvent, value); }
}

protected virtual void OnClick()
{
    RoutedEventArgs args = new RoutedEventArgs(ClickEvent, this);
    RaiseEvent(args);
}

protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
    base.OnMouseLeftButtonUp(e);
    OnClick();
}
#endregion

XAML code :

<Calen:Cal x:Name="Calendar" Margin="0,50,0,0" Click="Calendar_Click"/>

C# code :

private void Calendar_Click(object sender, RoutedEventArgs e)
{
    string t = "";
}

I don't found any solution. I don't know why this code don't work correctly.

Can you help me with this problem please ?

You need to set the DataContext to point to the class that contains the code behind.

<UserControl>
   DataContext="{Binding RelativeSource={RelativeSource Self}}">
</UserControl>

This is necessary because unfortunately, by default, the DataContext is not set up correctly in WPF.

For more info on DataContext , see ReSharper WPF error: "Cannot resolve symbol "MyVariable" due to unknown DataContext" .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM