【发布时间】:2011-10-02 08:23:45
【问题描述】:
我对可能非常简单的事情感到茫然。 我进行了搜索,但未能找到我需要的确切答案。
问题如下。
我正在自学 Silverlight MVVM。 目前我正在编写一个使用 1 个主页和 2 个用户控件的应用程序。
您可以想象,3 个视图模型。
目前在我的 XAML 中:
mainpage.xaml
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:vm="clr-namespace:newFileupload.ViewModel"
xmlns:vw="clr-namespace:newFileupload.View"
<UserControl.DataContext>
<vm:MainPageViewModel />
</UserControl.DataContext>
<Grid x:Name="LayoutRoot" Background="White">
<vw:PicturesOverviewView />
</Grid>
PicturesOverviewView.xaml
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"
<Grid x:Name="LayoutRoot" Background="White">
</Grid>
所以在 mainpage.xaml 中,我在 xaml 中设置了 datacontext,然后我像这样在网格中调用 usercontrol:
<vw:PicturesOverviewView />
这给了我以下错误:
Error 1 Cannot create an instance of "PicturesOverviewView". C:\Programming\C#\newFileUpload\newFileupload\MainPage.xaml 16 9 newFileupload
我完全不知道是什么原因造成的,其次..
如何将视图模型绑定到适当的用户控件?
我是否需要为每个用户控件声明视图命名空间,然后像主页一样设置其数据上下文?
感谢您抽出宝贵时间阅读,我希望能够尽快继续:)
【问题讨论】:
-
像你一样将视图绑定到虚拟机,然后将控件等绑定到视图模型中的数据。因此,如果 uc1 是 ListBox,则将其绑定到 MainPageViewModel 上的客户列表。
-
@Derek Beattie :我想要一个不同的视图模型为我的用户控件(除非真的不可能),它仍然没有清除我得到的错误。我什至无法加载用户控件:(
-
我复制了您的示例(根据给出的详细信息猜测每个组件的内容),它编译并运行良好。你能提供更多你的代码/Xaml 吗? “无法创建”可能是 PicturesOverviewView 的问题,而不是主页的问题,但你也没有说它是在哪里创建的。
-
发布主控件和用户控件的所有 xaml。
-
@Derek Beattie & HiTech Mahic,刚刚发布了 xaml。想知道导致错误的原因,以及如何将视图模型绑定到 PicturesOverviewView。如果我尝试像在 mainpage.xaml 中那样绑定它,它会产生另一个错误。
标签: silverlight mvvm user-controls binding