我在日历控件上添加了一个点击事件。但是通过我的实施,这个活动不起作用。
我在Cal.cs控件中的代码:
.init
XAML代码:
#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
C#代码:
<Calen:Cal x:Name="Calendar" Margin="0,50,0,0" Click="Calendar_Click"/>
我没有找到任何解决方案。我不知道为什么这段代码无法正常工作。
你能帮我解决这个问题吗?
答案 0 :(得分:0)
您需要将DataContext
设置为指向包含后面代码的类。
<UserControl>
DataContext="{Binding RelativeSource={RelativeSource Self}}">
</UserControl>
这是必要的,因为遗憾的是,默认情况下,WPF中未正确设置DataContext
。
有关DataContext
的详情,请参阅ReSharper WPF error: "Cannot resolve symbol "MyVariable" due to unknown DataContext"。