Я пытаюсь передать существующие экземпляры объекта в качестве параметров конструктору объекта, создаваемого с помощью ObjectDatatProvider. Это всегда терпит неудачу с данным исключением, хотя у моего объекта есть конструктор, который принимает один параметр:
System.Windows.Data Ошибка: 34:
ObjectDataProvider не может создать
объект; Тип = 'VegaViewModel';
Ошибка = 'Неправильные параметры для
конструктор.'
MissingMethodException: 'System.MissingMethodException:
Конструктор по типу
«WpfApplication1.VegaViewModel» не
найденный. в
System.RuntimeType.CreateInstanceImpl (BindingFlags
bindingAttr, Binder Binder, Object []
args, CultureInfo culture, Объект []
ActivationAttributes) в
System.Activator.CreateInstance (Тип
тип, BindingFlags bindingAttr, Binder
связыватель, Object [] args, CultureInfo
культура, объект []
ActivationAttributes) в
System.Windows.Data.ObjectDataProvider.CreateObjectInstance (Исключение &
е) '
Вот мой Xaml:
<ObjectDataProvider ObjectType="{x:Type WpfApplication1:VegaModel}" MethodName="Sample" x:Key="VegaPnlData"/>
<ObjectDataProvider ObjectType="{x:Type WpfApplication1:VegaViewModel}" x:Key="VegaViewModel">
<ObjectDataProvider.ConstructorParameters>
<ObjectDataProvider ObjectInstance="{StaticResource VegaPnlData}"/>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
Если я использую этот xaml, я получаю ту же ошибку:
<ObjectDataProvider ObjectType="{x:Type WpfApplication1:VegaViewModel}" x:Key="VegaViewModel">
<ObjectDataProvider.ConstructorParameters>
<StaticResource ResourceKey="VegaPnlData"/>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
Вот код для класса VegaViewModel:
public class VegaViewModel
{
public VegaViewModel(VegaModel vegaPnl)
{
VegaPnl = vegaPnl;
}
public VegaModel VegaPnl { get; set; }
}