在我的第一个WPF应用程序中,WPF window_loaded异常

本文关键字:WPF window loaded 异常 我的 第一个 应用程序 | 更新日期: 2023-09-27 18:20:42

我正在学习WPF及其第一个MVVM应用程序。我看到一个视频,其中使用Silverlight应用程序演示MVVM。然而,我正在为WPF模仿它。在Silverlight中,视频演示者在UserControl XAML标记中创建一个成功的事件,即UserControl_Loaded。

然而,我正在创建MainWindow.xaml 的xaml文件的Window_Loaded in Window根元素

我收到以下错误:(请帮帮我。此事件"Window_Loaded"仅在第5行。

例外:

'将值添加到类型的集合"System.Windows.Controls.UIElementCollection"引发异常行号"5"和行位置"28"。

内部异常:

{"Window必须是树的根。不能将Window添加为的子级视力的"}

还请向我解释为什么它与解决方案一起发生。我只是想学习MVVM,并使用可观察的集合INotifyPropertyChanged和一个模型类,我正在以硬编码的方式生成这个对象的数据。

注:

我怀疑这是由于clr命名空间造成的。

首先,我想知道,为什么如果我键入clr,intellisense不带我去clr?相反,它只需要我找到名称空间列表中的第一个http。其次,Silverlight视频使用了项目的名称空间,然而,我使用了View的名称空间。因为,当我使用项目的名称空间时,它会给我一个错误,说找不到"视图"。任何我出错的地方:(

(或):

是因为我试图插入另一个Window.xaml页面的新Window.xamm页面吗?与Silverlight视频不同的是,它确实在页面中插入了UserControl。

MainWindow到MainWindow是问题吗?如果我在主窗口中使用UserControl,它会被解决吗?意思是说,我们没有窗户到窗户?

在我的第一个WPF应用程序中,WPF window_loaded异常

不能在另一个Window中有一个Window!Window应该是xaml的根元素,您可以在其中添加其他元素。例如Grid。我的建议是先找一些WPF教程和书籍(而不是silverlight),因为WPF更强大,而且在很多方面都有所不同。

Window.xaml:

<Window  x:Class="WpfMvvmApplication1.Views.Login"
    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"
    mc:Ignorable="d"
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:View="clr-namespace:WpfMvvmApplication1.Views">
<Grid>
   <View:UserControl/>
</Grid>
</Window>

这将把您的用户控件导入到窗口中。/

希望这对你有帮助。