嘿,我正在用MVVM做一个Windows应用程序和Avalia. 我有一个包含当前视图的导航视图模型.它如下所示:

   public class NavigationVM : ViewModelBase
   {
       public NavigationVM()
       {
           //first time created assigns the currentvm to loginvm
           CurrentVM = new LoginVM(this);
       
       }

       private ViewModelBase? currentvm;
       public ViewModelBase CurrentVM
       {
           get => currentvm!;
           set => this.RaiseAndSetIfChanged(ref currentvm, value);
       }
   }

在MainWindow.xaml中,我将其内容绑定到CurrentVM(是的,我将文本设置为导航视图模型).

MainWindow.xaml:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="using:MusicPlayer.ViewModels"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:views="clr-namespace:MusicPlayer.Views"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="MusicPlayer.Views.MainWindow"
        Icon="/Assets/avalonia-logo.ico"
        Title="MusicPlayer"
        x:CompileBindings="True"
        x:DataType="vm:NavigationVM"
        Content="{Binding CurrentVM}"
        >
    <Window.DataTemplates>
        <DataTemplate DataType="{x:Type vm:LoginVM}">
            <views:LoginView/>
        </DataTemplate>
    </Window.DataTemplates>
                       
</Window>

我知道视图模型不能直观地显示,所以我try 使用数据模板.LoginView只是一个带有标签的视图.但它向我展示了这个错误:

error

提前谢谢!

推荐答案

错误信息与Avalonia无关...它告诉您启动项目不是类型EXE,而是一个类库...您在解决方案中有多个项目,并且您开始了错误的项目...右键单击EXE项目并 Select Set as startup project,如下所示

Set project as startup project in Visual Studio

输出winexe作为启动项目的桌面项目

show the final look

Csharp相关问答推荐

为什么这个Reflection. Emit代码会导致一个DDL ViolationException?

为什么C#Bigbit不总是相同的比特长度?

如何使用ConcurentDictionary属性上的属性将自定义System.Text.Json JsonConverter应用于该属性的值?

使用C#中的SDK在Microsoft Graph API上使用SubscribedSkus的问题

如何在C#中使用正则表达式抓取用逗号分隔的两个单词?

如何使用C#Interop EXCEL创建度量衡

JSON空引用异常仅在调试器中忽略try-Catch块,但在其他上下文中捕获得很好

持有者安全定义未显示在Swagger.NET 8中

正在try 从Blazor中的API读取JSON

依赖项注入、工厂方法和处置困境

将操作从编辑页重定向到带参数的索引页

在PostgreSQL上使用ExecuteSqlRawAsync的C#11原始字符串文字有区分大小写的问题

当我将`ConcurentDictionary`转换为`IDictionary`时,出现了奇怪的并发行为

为什么ReadOnlySpan;T&>没有Slice(...)的重载接受Range实例的?

.NET8Blazor-为什么Rapzor渲染在for循环之后显示?

如何使用ODP.NET C#设置Oracle会话时间长度限制

映射器-如何映射到多个实体

在使用.NET EF Core DbContext属性之前,是否应使用null判断

我可以阻止类型上的Object.ToString()吗?

在SQL中删除少于24小时的令牌