如何在 XAML 中将"this"传递给对象数据提供程序的构造函数?



如何将"this"传递给XAML中ObjectDataProvider的构造函数。

假设我的演讲者课程是:

public class ApplicationPresenter(IView view){}

并且我的UserControl实现了IView。

我应该向下面代码中的ConstructorParameters传递什么,以便UserControl可以使用默认构造函数创建ApplicationPresenter?

<ObjectDataProvider x:Key="ApplicationPresenterDS" 
ObjectType="{x:Type Fenix_Presenters:ApplicationPresenter}" 
ConstructorParameters="{ ?? what goes here ??}" d:IsDataSource="True" />

我只需要这样做,就可以使用Blend 2。我知道我可以在后面的代码中做到这一点,但如果我做到了,我就无法从Blend中实例化类。我也知道我可以为ApplicationPresenter创建一个无参数构造函数,并向它传递一个实现IView的伪类,但如果可能的话,我宁愿在标记中这样做。

我现在的代码是:

public MyUserControl()
{
    InitializeComponent();
    DataContext = new ApplicationPresenter(this); 
}

我刚开始使用Wpf,并误解我应该尝试在XAML中执行所有操作。我刚刚从WindowsClient.net上看了一些视频,这些视频开始澄清一些问题。但天哪,这是一项复杂的技术!!!

我不知道它是否有效,但你可以给你的用户控件一个名称,例如

x:Name="myUserCotrol"

然后将其用于绑定:

... ConstructorParameters="{Binding ElementName=myUserControl}" ...

这可以工作

正如Rob Relyea在今年的PDC上所展示的那样,这将在下一版本的XAML中得到直接支持(如果内存运行良好的话)。

相关内容

  • 没有找到相关文章

最新更新