单击日历控件上的事件



我在日历控件上添加了一个单击事件。但是在我的实现中,这个事件不起作用。

我在Cal.cs控件中的代码:

#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代码:
<Calen:Cal x:Name="Calendar" Margin="0,50,0,0" Click="Calendar_Click"/>

c#代码:

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

我找不到任何解决办法。我不知道为什么这段代码不能正常工作。

你能帮我解决这个问题吗?

您需要将DataContext设置为指向包含后面代码的类。

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

这是必要的,因为不幸的是,默认情况下,DataContext在WPF中没有正确设置。

有关DataContext的更多信息,请参阅ReSharper WPF错误:"无法解析符号"MyVariable"由于未知的数据文本"

最新更新