绑定到ResourceDictionary XAML中的DataTemplate中的ContextMenuOpening

时间:2017-01-17 14:19:49

标签: c# wpf xaml

我有一个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中,我是否正在努力做到这一点?

1 个答案:

答案 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...
}