Устранение неполадок ObjectDataProvider.ConstructorParameters в файле XAML WPF - PullRequest
0 голосов
/ 02 мая 2019

Я новичок в WPF и мне нужна помощь с моим файлом XAML.Я хочу включить мою ViewModel в файл Window.DataContext, но во время выполнения он выдает ошибку о неправильных параметрах:

System.Windows.Data Ошибка: 34: ObjectDataProvider не может создать объект;Тип = 'PrintWindowViewModel';Ошибка = 'Неправильные параметры для конструктора.'MissingMethodException: 'System.MissingMethodException: конструктор для типа' BBWindowsUser.PrintWindowViewModel 'не найден.

Конструктор для ViewModel:

public PrintWindowViewModel(Document pDocument, int pActivePage, List<int> pSelectedPages, bool pPrintingSet, bool pBatch = false)

Мне нужно только войти вконструктор это:

PrintWindowViewModel(null, -1, null, false)

Вот мой XAML:

<Window x:Class="BBWindowsUser.PrintWindowView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:BBWindowsUser"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        mc:Ignorable="d"
        Title="Print" Height="150" Width="250">

   <Window.DataContext>
        <ObjectDataProvider ObjectType="local:PrintWindowViewModel">
            <ObjectDataProvider.ConstructorParameters>
                <x:Null/>
                <sys:Int32>-1</sys:Int32>/>
                <x:Null/>
                <sys:Boolean>false</sys:Boolean>
                <sys:Boolean>false</sys:Boolean>
            </ObjectDataProvider.ConstructorParameters>
        </ObjectDataProvider>
    </Window.DataContext>
    <Grid>
        <Button Content="{Binding PrintButtonContent}"
                HorizontalAlignment="Left"
                Margin="70,45,0,0"
                Name="btnPrint"
                VerticalAlignment="Top"
                Height="30"
                Width="100"
                Command="{Binding PrintButtonCommmand}"/>
    </Grid>
</Window>

Не уверен, что я делаю неправильно.

1 Ответ

0 голосов
/ 03 мая 2019

Вы добавили дополнительный /> в свой параметр конструктора, удалите его

           <ObjectDataProvider.ConstructorParameters>
                <x:Null/>
                <sys:Int32>-1</sys:Int32>
                <x:Null/>
                <sys:Boolean>false</sys:Boolean>
                <sys:Boolean>false</sys:Boolean>                
            </ObjectDataProvider.ConstructorParameters>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...