我有一个在运行时动态加载的XAML控件。这是纯粹的XAML,没有代码。动态加载XAML时,附加到XAML控件中的单击事件。
我没有任何控制父加载机制,这就是为什么这看起来有点奇怪。
我有一个父应用程序加载我的插件DLL并加载我的XAML控件。
我的DLL签名是:
public class Application : BaseClassHere
{
public Application(IParentContext context) : base(context)
{
// Im placing this instance in the bag which i use in my XAML
base.MyObservablePropertyBag["MyParentContext"] = new ObservableValue<object>(this);
}
}
我的XAML是这样的:
<av:UserControl
xmlns:local="clr-namespace:MyApplicationNS;assembly=MyDll"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" >
<Border DataContext="{Binding MyObservablePropertyBag[MyParentContext].Value}" >
<Button Name="MyButton" />
</Border>
</UserControl>
这种结合也很好用XAML。我可以完全访问我在Application类中定义的所有公共属性。
我的问题是,我想链接到我的按钮上点击事件。如果我在XAML中添加一个Click事件,它会在运行时错误地告诉我需要编译我的XAML。
有没有办法在Application类中订阅MyButton上的Click事件?
刚刚添加事件触发器到Routed.Event通过xaml单击时出错了吗? –