0

我试图在 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" />

什么可能导致该错误?一切都可以编译,但是当我运行它时应用程序崩溃了。我希望这两个问题可能是一个相关的问题。

4

2 回答 2

1

你提到的两个问题几乎肯定是相关的。在这两种情况下,都将处理 XAML 文件以创建控件。一个用于设计目的,另一个用于运行时。如果在解析文件时在运行时生成异常,那么设计人员也会遇到文件问题。

我认为您需要关注原始错误,然后再回到这个错误。一个几乎可以肯定地修复另一个。

于 2009-05-28T13:58:30.580 回答
0

好的,事实证明,虽然 Visual Studio 设置为使用 .net 框架的 v3.5,但您需要单独安装框架的 v3.5 - 看来我只安装了 v2。让这成为其他在同样问题上苦苦挣扎的人的一个教训!

于 2009-06-03T08:22:26.790 回答