我正在学习WPF及其第一个MVVM应用程序。我正在观看一个视频,其中使用Silverlight应用程序演示了MVVM。但是,我为WPF模仿它。在Silverlight中,视频演示者在UserControl XAML标签(即UserControl_Loaded)中创建了一个成功的事件。
但是,我正在MainWindow.xaml的xaml文件的Window根元素中创建Window_Loaded
我收到此错误:(请帮助我。此事件“Window_Loaded”仅在第5行中。
异常(exception):
'Add value to collection of type 'System.Windows.Controls.UIElementCollection' threw an exception.' Line number '5' and line position '28'.
Inner Exception:
{"Window must be the root of the tree. Cannot add Window as a child of Visual."}
还请向我解释为什么它与解决方案一起发生。我只是想学习MVVM,并使用可观察的集合,INotifyPropertyChanged和模型类,并且以硬编码方式生成此对象的数据。
笔记:
我怀疑这是由于clr-namespace所致。
首先,我想知道为什么我输入clr时,intellisense不带我进入clr吗?相反,它只需要我按 namespace 列表的顺序首先进入http。其次,Silverlight Video使用了项目的 namespace ,但是,我使用了View的 namespace 。因为,当我使用项目的 namespace 时,它给我错误,提示找不到“ View ”。无论我哪里出错了:(
(或者):
是否由于我要插入另一个window.xaml页面的新Window.xaml页面?与Silverlight视频不同,它确实将UserControl插入到页面中。
MainWindow变成MainWindow在这里有问题吗?
如果我在MainWindow中使用UserControl,它将得到解决吗?意思是说,我们没有 window 可以进入 window 吗?
最佳答案
您不能在另一个窗口中拥有一个窗口! Window应该是xaml的根元素,您可以在其中添加其他元素。例如网格。我的建议是找到一些WPF教程和书籍(不是Silverlight)作为开始,因为WPF更强大,并且在许多方面都不同。
关于c# - 我的第一个WPF应用程序中的WPF window_loaded异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17397905/