Дизайнер Visual Studio 2008 WPF не загружает мои формы - PullRequest
0 голосов
/ 28 мая 2009

Я пытаюсь увидеть форму, разработанную кем-то другим (бывшим сотрудником) в Visual Studio 2008, но продолжаю сталкиваться со следующей ошибкой, когда я пытаюсь посмотреть MainForm.xaml (она не загружается в представлении конструктора) :

Ошибка Не удалось создать экземпляр типа 'NumericTextBox'. D: \ MySolution \ GUI \ MainForm.xaml

Мое решение организовано примерно так (сокращенно для краткости - это последняя строка, в которой происходит ошибка):

\solution
    \Gui
        \App.xaml
        \MainForm.xaml
    \Utils
        \NumericTextBox.cs

Мой MainForm.xaml выглядит примерно так:

<Window x:Class="MyCompany.MyDepartment.MyProject.MainForm"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MyCompany.MyDepartment.MyProject"
        xmlns:myproject="clr-namespace:MyCompany.MyDepartment.MyProject;assembly=MyProject"
        xmlns:dsp="clr-namespace:MyCompany.MyDepartment.MyProject.DSP;assembly=MyProject"
        xmlns:filters="clr-namespace:MyCompany.MyDepartment.DSP.Filters;assembly=DSP"
        xmlns:mydepartment="clr-namespace:MyCompany.MyDepartment.Utils;assembly=Utils"
        xmlns:scope="clr-namespace:MyCompany.MyDepartment;assembly=ScopeControl"
        Title="MyProject" Height="900" Width="1024"
        Loaded="Window_Loaded"
        Closing="Window_Closing" ResizeMode="CanResize" Icon="/MyProjectGUI;component/MyProjectGUI.ico">

    <Window.Resources>
    ...
    </Window.Resources>

    <DockPanel>
        <StackPanel DockPanel.Dock="Left" CanVerticallyScroll="True" CanHorizontallyScroll="False">
            <GroupBox Name="SensorControlGroup"  Header="Sensor Control">
            ...
            </GroupBox>
            <GroupBox Header="Sensor State">
                <StackPanel Name="SensorStackPanel">
                    <Expander Name="EnvironmentExpander" Header="Environment">
                    ...
                    </Expander>
                    <Expander Name="SynthExpander" Header="Synthesiser" IsExpanded="True">
                        <Border Margin="2" Background="White" Padding="3">
                            <Grid>                                
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="120"/>
                                    <ColumnDefinition Width="60"/>
                                    <ColumnDefinition Width="60"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <Label Grid.Column="0" Grid.Row="0">Frequency (MHz):</Label>

                                <mydepartment:NumericTextBox Grid.Column="1"
                                                     x:Name="SynthFrequency" DecimalPlaces="3"
                                                     Maximum="0" Minimum="0" />

Что может вызвать эту ошибку? Все компилируется нормально, но приложение вылетает при запуске . Я надеялся, что эти две проблемы могут быть связаны.

Ответы [ 2 ]

1 голос
/ 28 мая 2009

Две упомянутые вами проблемы почти наверняка связаны. В обоих случаях файл XAML будет обработан для создания элемента управления. Один для целей проектирования, а другой для времени выполнения. Если при синтаксическом анализе файла создается исключение во время выполнения, из этого следует, что у разработчика также будут проблемы с файлом.

Я думаю, вам нужно сосредоточиться на исходной ошибке, а затем вернуться к этой. Один почти наверняка должен исправить другой.

0 голосов
/ 03 июня 2009

Итак, оказалось, что, хотя Visual Studio был настроен на использование v3.5 .net framework, вам нужно отдельно установить v3.5 этого фреймворка - похоже, у меня была установлена ​​только v2. Пусть это будет уроком для всех, кто борется с такими же проблемами!

...