Как передать «это» в конструктор для ObjectDataProvider в XAML? - PullRequest
2 голосов
/ 28 октября 2008

Как передать "this" в конструктор для ObjectDataProvider в XAML.

Допустим, мой класс ведущий:

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); 
}

Ответы [ 3 ]

1 голос
/ 29 октября 2008

Я только начинаю с Wpf и заблуждаюсь, что я должен пытаться делать все в XAML. Я только что посмотрел несколько видео с WindowsClient.net , которые начинают проясняться. Но мальчик это сложная технология !!!

0 голосов
/ 04 ноября 2008

Это будет напрямую поддерживаться (если память хорошо работает) в следующей версии XAML, как , продемонстрированный Робом Рельеа на PDC этого года .

0 голосов
/ 28 октября 2008

Я не знаю, работает ли он, но вы можете дать своему пользовательскому элементу управления имя, например,

x:Name="myUserCotrol"

и затем используйте его в привязке:

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

это может сработать

...