在以下结构中
<Border ...>
<ItemsControl>
<ItemsControl.Template>
<DataTemplate>
<ACustomElement>
<Border MouseLeftButtonDown="method1">
</ACustomElement>
</DataTemplate>
</ItemsControl.Template>
</ItemsControl>
</Border>
我想从 method1() 内部调用 ACustomElement 类中的公共方法。
到目前为止我在 method1() 中尝试过的内容:
var cr = ((Border)sender).Parent;
cr.method2();
method2 是我的 ACustomElement 类中的公共方法。但它似乎不承认该方法。
我收到以下错误:
“DependencyObject”不包含“method2”的定义,并且找不到接受“DependencyObject”类型的第一个参数的扩展方法“method2”(您是否缺少 using 指令或程序集引用?)
关于如何解决这个问题的任何建议?当然,我只是缺少演员表或其他东西...
编辑:以下样式将始终应用于 ACustomElement:
<Style TargetType="{x:Type c:ACustomElement}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type c:ACustomElement}">
<ContentPresenter Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>