2008-10-28 1 views
2

Как передать «это» конструктору ObjectDataProvider в XAML.Как передать «это» конструктору ObjectDataProvider в XAML?

Допустим, мой класс предъявитель:

public class ApplicationPresenter(IView view){} 

и что мой UserControl реализует IView.

Что я могу передать в конструкторПараметры в приведенном ниже коде, чтобы 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); 
} 

ответ

0

я не знаю, если это работает, но вы могли бы дать ваш пользовательский контроль имя, например,

x:Name="myUserCotrol" 

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

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

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

+0

Это не сработает, потому что ObjectDataProvider не является результатом DependencyObject, поэтому ConstructorParameters не является DependencyProperty, что является обязательным требованием для DataBinding. – 2008-10-28 21:24:59

1

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

Смежные вопросы