我有一个ResourceDictionary,其中包含一个<DataTemplate>
,其中包含<TextBox>
。问题是如何使用绑定来连接ContextMenuOpening
的{{1}}事件。我尝试通过TextBox
创建一个DependencyProperty,其名称与DependencyProperty.Register
事件中的Binding匹配,但在运行时错误是:
ContextMenuOpening
ResourceDictionary XAML:
A 'Binding' cannot be set on the 'AddContextMenuOpeningHandler' property of type 'TextBox'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject.
由于XAML位于ResourceDictionary而不是UserControl的XAML中,我是否正在努力做到这一点?
答案 0 :(得分:1)
由于XAML位于ResourceDictionary而不是UserControl的XAML中,我是否正在努力做到这一点?
是的,您可以将代码隐藏文件添加到ResourceDictionary,如下所述:
Is it possible to set code behind a resource dictionary in WPF for event handling?
添加代码隐藏文件后,您可以照常处理事件:
<TextBox ContextMenuOpening="TextBox_ContextMenuOpening" />
private void TextBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
//do your thing...
}