C# 找不到与ViewModel匹配的视图 我有一个MeVIEW和一个VIEW模型,在中间显示当前的VIEW模型。 我在不同的ViewModel之间切换当前的ViewModel,切换代码通常应该是这样工作的:CurrentViewModel=new FooViewModel(),然后它应该找到与ViewModel匹配的视图。 但在调试应用程序时,它只显示当前viewmodel所在的路径 找不到ViewModel的视图
我使用了Caliburn的正确文件系统 所有以“视图”命名的视图都位于“视图”文件夹中。C# 找不到与ViewModel匹配的视图 我有一个MeVIEW和一个VIEW模型,在中间显示当前的VIEW模型。 我在不同的ViewModel之间切换当前的ViewModel,切换代码通常应该是这样工作的:CurrentViewModel=new FooViewModel(),然后它应该找到与ViewModel匹配的视图。 但在调试应用程序时,它只显示当前viewmodel所在的路径 找不到ViewModel的视图,c#,wpf,mvvm,caliburn.micro,caliburn,C#,Wpf,Mvvm,Caliburn.micro,Caliburn,我使用了Caliburn的正确文件系统 所有以“视图”命名的视图都位于“视图”文件夹中。 所有以“ViewModel”命名的视图模型都位于文件夹“ViewModels”中 是否有人知道为什么找不到正确的视图或我遗漏了什么?您必须在主窗口中定义DataTemplate: <Window.Resources> <DataTemplate DataType="{x:Type vm:PaymentViewModel}"> <v:NewPaymen
所有以“ViewModel”命名的视图模型都位于文件夹“ViewModels”中
是否有人知道为什么找不到正确的视图或我遗漏了什么?您必须在主窗口中定义DataTemplate:
<Window.Resources>
<DataTemplate DataType="{x:Type vm:PaymentViewModel}">
<v:NewPaymentView/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:MainMenuViewModel}">
<v:MainMenu/>
</DataTemplate>
</Window.Resources>
xmlns:vm ="clr-namespace:Your ViewModels"
xmlns:v="clr-namespace:Your Views"
xmlns:vm=“clr命名空间:您的视图模型”
xmlns:v=“clr命名空间:您的视图”
然后在内容控件中绑定CurrentViewModel:
<ContentControl Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Content="{Binding CurrentViewModel}" />
然后不要忘记在MainViewModel中提升PropertyChanged(如果您不在ctor中)。
这是我的第一篇帖子,希望对你有所帮助。这是为了不使用任何mvvm框架而写的 在主窗口viewmodel中定义子viewmodel的数据模板 对于整个应用程序,您必须为主视图模型创建静态对象 然后只会更改视图 应该是这样的
public partial class App : Application
{
public static MainWindowViewModel mainWindowViewModel;
public App()
{
mainWindowViewModel = new MainWindowViewModel();
}
}
您需要为视图定义数据模板我认为使用caliburn micro时不必定义数据模板?