You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MVVMCross WPF应用中从核心项目设置MainWindow标题

解决方案

可以通过数据绑定的方式从核心项目侧控制WPF窗口的标题,MvvmCross框架原生支持该操作,无需额外自定义扩展。

步骤1:在核心项目的ViewModel中定义标题属性

在与MainWindow对应的ViewModel(通常命名为MainViewModel,继承自MvxViewModel)中添加可通知变更的标题属性,示例代码如下:

using MvvmCross.ViewModels;

// 请替换为你实际的核心项目命名空间
namespace Core.ViewModels
{
    public class MainViewModel : MvxViewModel
    {
        private string _windowTitle = "默认窗口标题";
        public string WindowTitle
        {
            get => _windowTitle;
            set => SetProperty(ref _windowTitle, value);
        }
    }
}

你可以在ViewModel的任意业务逻辑中修改WindowTitle的值,界面会自动同步更新。

步骤2:修改XAML绑定窗口标题

将MainWindow.xaml中硬编码的Title属性改为绑定ViewModel中的WindowTitle属性即可,修改后的完整XAML代码如下:

<views:MvxWindow  x:Class="UI.MainWindow"
        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:local="clr-namespace:UI"
        xmlns:views="clr-namespace:MvvmCross.Platforms.Wpf.Views;assembly=MvvmCross.Platforms.Wpf"
        mc:Ignorable="d"
        Title="{Binding WindowTitle}" Height="450" Width="800">
    <Grid>
    </Grid>
</views:MvxWindow>

说明

MvvmCross框架会按照默认命名约定自动完成View和对应ViewModel的关联,无需手动设置DataContext,只要你的View和ViewModel命名匹配(如MainWindow对应MainViewModel)、命名空间符合框架约定,绑定即可正常生效。

内容的提问来源于stack exchange,提问作者mftrmbn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:36:02