首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用mvvmcross UWP将Viewmodel中的值传递给其他ViewModel

MVVMCross是一个开源的跨平台MVVM框架,用于开发移动应用程序。它支持多个平台,包括Android、iOS、Windows Phone和Universal Windows Platform (UWP)。

在MVVMCross中,要将一个ViewModel中的值传递给另一个ViewModel,可以使用消息传递机制。以下是一种实现方法:

  1. 首先,在发送ViewModel中的值的ViewModel中,创建一个消息类,用于传递数据。例如,可以创建一个名为"DataMessage"的类,该类包含一个属性来存储要传递的值。
代码语言:txt
复制
public class DataMessage : MvxMessage
{
    public string Value { get; private set; }

    public DataMessage(object sender, string value) : base(sender)
    {
        Value = value;
    }
}
  1. 在发送ViewModel中,使用MVVMCross的消息中心来发送消息。可以在需要发送值的方法中调用以下代码:
代码语言:txt
复制
Mvx.IoCProvider.Resolve<IMvxMessenger>().Publish(new DataMessage(this, "Hello World"));
  1. 在接收ViewModel中,订阅消息并处理传递的值。可以在接收ViewModel的构造函数中订阅消息,如下所示:
代码语言:txt
复制
private readonly MvxSubscriptionToken _token;

public ReceivingViewModel(IMvxMessenger messenger)
{
    _token = messenger.Subscribe<DataMessage>(OnDataMessageReceived);
}

private void OnDataMessageReceived(DataMessage message)
{
    string value = message.Value;
    // 处理传递的值
}
  1. 当发送ViewModel中的值发生变化时,通过消息中心发送消息。可以在发送ViewModel中的属性setter中调用以下代码:
代码语言:txt
复制
private string _value;
public string Value
{
    get { return _value; }
    set
    {
        _value = value;
        RaisePropertyChanged(() => Value);
        Mvx.IoCProvider.Resolve<IMvxMessenger>().Publish(new DataMessage(this, value));
    }
}

这样,当发送ViewModel中的Value属性发生变化时,接收ViewModel中的OnDataMessageReceived方法将被调用,并处理传递的值。

在UWP中使用MVVMCross时,可以使用以下腾讯云相关产品和产品介绍链接地址来增强应用程序的功能和性能:

  • 腾讯云对象存储(COS):用于存储和管理应用程序中的文件和数据。产品介绍链接
  • 腾讯云数据库(TencentDB):提供可扩展的、高性能的数据库解决方案。产品介绍链接
  • 腾讯云人工智能(AI):提供各种人工智能服务,如图像识别、语音识别和自然语言处理。产品介绍链接
  • 腾讯云物联网(IoT):用于连接和管理物联网设备,并处理设备生成的数据。产品介绍链接
  • 腾讯云移动开发(Mobile):提供移动应用开发和推送服务。产品介绍链接
  • 腾讯云区块链(Blockchain):提供可信、高效和安全的区块链解决方案。产品介绍链接

通过使用这些腾讯云相关产品,可以为应用程序提供稳定、可靠和高效的云计算支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199

一个好框架是不需要写教程大家看到就会用,但是本金鱼没有那么好技术,所以需要写很长博客告诉大家如何使用框架。...这里大家还看到我使用了(NavigateFrame)Frame,因为在 ViewModel.NavigatedTo 使用是 INavigateFrame 来作为跳转,如果传入其他参数就需要自己写...如果写在页面有一个问题是如何其他页面跳转信息发送到 ViewModel ,这个框架使用是在外面创建。 在 UWP 页面参数是在 OnNavigatedTo 函数拿到。...在进入一个 ViewModel 时候,需要让他发送消息给其他 ViewModel ,在继承 ViewModelMessage 就可以使用 Send 函数,发送消息可以是消息也可以是告诉指定ViewModel...这个框架设计参考了 MVVMCross 和 MVVMLight 只是减少了里面部分功能 参见: win10 uwp MVVM入门 win10 uwp MVVM 轻量框架 win10 uwp MVVM

1.3K20

.NET 基金会项目介绍-MvvmCross

MvvmCross 是属于 .Net 基金会一个项目,本文简要介绍该项目相关信息。 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。...MvvmCross MvvmCross 是一个跨平台 MVVM 框架,其使得开发者能够构建简洁像素友好原生UI。...使用 Model-View-ViewModel (MVVM) 设计模式能够在多平台间使用一套代码共享业务逻辑。 MvvmCross 专门为 Xamarin 和移动设备生态设计。...不论如何,业务复杂度不会随着技术框架选择而减低,它只会从一个地方转移到另外地方。 开发者可以尝试并使用此框架减轻初期多重开发困难,而随着团队和业务演变,变化永远是不会停止。...其他项目地址 Akka.NET - 【Actor开发框架】 AngleSharp - 【浏览器引擎】 ASP.NET SignalR - 【Web实时通信框架】 ASP.NET MVC, Web API

1.6K30
  • 如何在Linux中使用管道命令输出传递给其他命令?

    本文详细介绍如何在Linux中使用管道命令输出传递给其他命令,并提供一些常见使用示例。图片1. 管道语法在Linux,管道使用竖线符号 | 表示,它位于两个命令之间。...这样,就实现了多个命令之间数据传递和处理。3. 管道示例3.1 排序命令示例使用管道可以排序命令与其他命令结合使用,实现对命令输出排序。...最终输出文件行数。3.4 替换命令示例使用管道还可以替换命令与其他命令结合使用,实现对命令输出中指定内容替换。...以下是一个示例:cat file.txt | grep "pattern" | wc -l在这个示例,首先使用 cat 命令文件 file.txt 内容输出,然后结果通过管道传递给 grep 命令进行筛选...总结在Linux使用管道命令输出传递给其他命令是一种强大且灵活方式,可以实现多个命令之间数据传递和处理。通过合理地组合不同命令,可以实现复杂数据操作和处理任务。

    1.2K30

    如何在Linux中使用管道命令输出传递给其他命令?

    本文详细介绍如何在Linux中使用管道命令输出传递给其他命令,并提供一些常见使用示例。 1. 管道语法 在Linux,管道使用竖线符号 | 表示,它位于两个命令之间。...这样,就实现了多个命令之间数据传递和处理。 3. 管道示例 3.1 排序命令示例 使用管道可以排序命令与其他命令结合使用,实现对命令输出排序。...最终输出文件行数。 3.4 替换命令示例 使用管道还可以替换命令与其他命令结合使用,实现对命令输出中指定内容替换。...以下是一个示例: cat file.txt | grep "pattern" | wc -l 在这个示例,首先使用 cat 命令文件 file.txt 内容输出,然后结果通过管道传递给 grep...总结 在Linux使用管道命令输出传递给其他命令是一种强大且灵活方式,可以实现多个命令之间数据传递和处理。通过合理地组合不同命令,可以实现复杂数据操作和处理任务。

    1.1K51

    win10 uwp MVVM入门

    MVVM 是一个强大架构,基本从 WPF 开始,wr(我说就是微软)就提倡使用 MVVM。它可以界面和后台分离,让开发人员可以不关心界面是怎样,全心投入到后台代码编写。...UWP 虽然可以直接在xaml.cs 写逻辑但是我们是推荐使用 MVVM 框架,写一个自己框架也很简单。 本文主要:如何UWP 使用 MVVM,如何做一个自己框架。...软件,可以这样看,我们看到都是界面,看不到就是后台,在 UWP 我们说 View 一般是 page UserControl 等。...但是我们在后面会看到,我们使用了页面导航参,ViewModel ,这时我们就不能设置 set 去掉。...那么我们可以做一个静态 ViewModel其他页面都直接从 ViewModel 拿。 假如我们有个页面 APage , AModel ,那么把 AModel 写在ViewModel ?

    2K10

    .NET 基金会项目介绍-Prism

    Prism 是属于 .Net 基金会一个项目,本文简要介绍该项目相关信息。 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。...UWP 应用。...Prism 帮助开发者实现了多种设计模式以及原则,包括有 Model-View-ViewModel (MVVM)、依赖注入、模块化设计、UI 组件化、命令模式和事件推送订阅机制。...其他项目地址 Akka.NET - 【Actor开发框架】 AngleSharp - 【浏览器引擎】 ASP.NET SignalR - 【Web实时通信框架】 ASP.NET MVC, Web API...【机器学习框架】 Cecil - 【语言底层项目】 Mono - 【语言跨平台底层项目】 MSBuild - 【本地自动化框架】 MVVM Light Toolkit - 【客户端MVVM开发框架】 MvvmCross

    1.3K00

    跨平台开发框架 MvvmCross 初体验

    跨平台开发框架 MvvmCross 初体验 MvvmCross 特点 尽量使用可移植类库进行编码, 可以包括 视图模型 (ViewModel) 、 模型 (Model) 、 服务 (Service)...甚至界面 (View) 使用 MVVM 模式和数据绑定 (Data Binding) 技术 使用目标平台本地化界面 框架任何部分都可以被重写 准备使用 MvvmCross 推荐方式是建立自己 git...使用 MvvmCross 创建跨平台应用 MvvmCross 应用至少包含两个项目, 一个是基于 PCL Core 项目, 包含所有的视图模型、 服务以及应用程序逻辑代码; 一个是目标平台界面项目...添加一个 Setup 类, 负责 MvvmCross 在 iOS 应用启动, 代码如下: using Cirrious.MvvmCross.Touch.Platform; using MonoTouch.UIKit...这是 MvvmCross 默认基于约定命名方式, 在运行时会自动 FirstView ViewModel 设置为 FirstViewModel 。

    1.3K30

    WPF 轻量级 MVVM 框架入门 2.1.2 安装项目要求创建主页面找到 ViewModel通过附加属性找到 ViewModel跳转页面跳转命令自定义命令

    本文告诉大家如何使用本金鱼 MVVM 轻量框架。 一个好框架是不需要解释就可以让大家使用,但是本金鱼没有这个能力,所以就写了这个文章告诉大家如何使用。...具体思想是使用消息发送方法,多个 ViewModel 之间使用发送消息解除依赖。把原来很多需要写在 ViewModel 代码通过发送指定消息,在其他类处理,减少 ViewModel 代码。...下面来告诉大家如何使用这个框架。...UWP 封装,实际上在使用,用 WPF 或 UWP 是差不多。...(), FrameworkPropertyMetadataOptions.Inherits)); 这样被跳转页面就可以通过附加属性拿到,可以通过 ` var viewModel = ViewModel

    1.2K20

    win10 uwp 简单MasterDetail UWP 导航List点击后退按钮页面更改大小修改显示修改我代码源码左右列表和内容相互操作

    https://msdn.microsoft.com/windows/uwp/controls-and-patterns/master-details 国内晓迪文章很好,但是文章对我渣渣很难知道如何做。...://github.com/lindexi/UWP 然后在按后退按钮,就把我们hasFrame=false; 大概我们就把一个页面做好,Detail就显示我们点击str 我们需要手机按后退也是 Windows.Phone.UI.Input.HardwareButtons.BackPressed...如果看不懂我上面说,可以看我代码https://github.com/lindexi/UWP/tree/master/uwp/src/DetailMaster 我们开始大屏幕是使用Grid有分开,左边列表...界面开始Image可以换为你需要,然后其他可以选择不修改。 很简单使用。 源码 接着我们来说下我源代码怎么做。...,一般建议使用 MVVM 然后绑定 ViewModel ,通过 ViewModel 可以直接操作两边,因为 ViewModel 知道左右数据。

    1.9K00

    win10 uwp 简单MasterDetail

    /windows/uwp/controls-and-patterns/master-details 国内晓迪文章很好,但是文章对我渣渣很难知道如何做。...://github.com/lindexi/UWP 然后在按后退按钮,就把我们hasFrame=false; 大概我们就把一个页面做好,Detail就显示我们点击str 我们需要手机按后退也是 Windows.Phone.UI.Input.HardwareButtons.BackPressed...如果看不懂我上面说,可以看我代码https://github.com/lindexi/UWP/tree/master/uwp/src/DetailMaster 我们开始大屏幕是使用Grid有分开,左边列表...界面开始Image可以换为你需要,然后其他可以选择不修改。 很简单使用。 源码 接着我们来说下我源代码怎么做。...,一般建议使用 MVVM 然后绑定 ViewModel ,通过 ViewModel 可以直接操作两边,因为 ViewModel 知道左右数据。

    40320

    win10 uwp 依赖属性

    本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用。 本文不会告诉大家依赖属性好处,只是简单告诉大家如何使用。...在 UWP 和 wpf ,如果需要创建自己依赖属性,可以使用代码片,在 VisualStudio 可以使用 propdp 输入两个 tab 就可以输入依赖属性。...UWP 什么时候可以获取继承依赖属性 依赖属性一般是不在构造函数写获取继承属性,因为一般这时拿到都是没有继承,请看下面的代码 创建一个用户控件 LuenqxuhkRrjbzcf ,在他构造函数和加载完成事件添加获得...假如我有多个属性,把这多个属性绑定在 G Padding ,那么只有最后一个绑定可以使用其他绑定无法使用。.../4764916/listen-to-changes-of-dependency-property 初始化出现默认类型与属性类型不同 定义依赖属性是需要默认类型和定义一样,在一般代码,可以使用隐式转换

    82420

    win10 uwp MVVM 轻量框架

    第一个情况如上图设计,左侧选项页面就是在程序运行不会改变,即使改变,也只是某一些选项,所以这个左侧页面,就可以尝试使用用户控件,或者连用户控件也不要,直接写就可以了。...接下来继续一个多页面通信问题。假如有一个程序,看起来和下面的图一样,有主页面,主页面有多个页面,那么这时,如何对这些页面进行通信?假如需要点击主页面的一个按钮,控制页面A元素,那么如何做?...使用 下面我来告诉大家如何使用这个框架。 首先创建一个 WPF 或 UWP 程序,可以通过 Nuget 安装或下载我源代码方式使用。...下面告诉大家如何使用Nuget安装,如果是 wpf ,那么请使用下面的代码 Install-Package lindexi.wpf.Framework 如果是 uwp ,那么请使用下面代码 Install-Package...,因为 C# 不可以多继承,所以和其他框架一起使用时,需要 ViewModel 继承其他类,那么就可以使用继承接口。

    1.2K10

    win10 uwp DataContext

    本文告诉大家DataContext多种绑法。 适合于WPF绑定和UWP绑定。 我告诉大家很多个方法,所有的方法都有自己优点和缺点,可以依靠自己喜欢用法使用。...开始是从最简单来说起。 需要知道 用户控件 如果有使用用户控件,那么容易被这个坑啦,如果发现自己绑定失败了,那么需要看一下是不是因为用户控件绑定和其他控件不相同。...,如果没有就使用上一级。...ViewModel和页面都在一个时间,也就是关闭了页面,也就自动关了 ViewModel ,说了这么多,好像还没说如何在代码使用 viewModel 。...关于为何使用 cast 而不是 as ,因为已经确定了现在使用类型就是 ViewModel ,我也需要使用ViewModel 不是其他,如果有人改了其它类型,我必须报错,于是就使用 cast

    85520

    win10 uwp DataContext

    本文告诉大家DataContext多种绑法。 适合于WPF绑定和UWP绑定。 我告诉大家很多个方法,所有的方法都有自己优点和缺点,可以依靠自己喜欢用法使用。...开始是从最简单来说起。 需要知道 用户控件 如果有使用用户控件,那么容易被这个坑啦,如果发现自己绑定失败了,那么需要看一下是不是因为用户控件绑定和其他控件不相同。...,如果没有就使用上一级。...ViewModel和页面都在一个时间,也就是关闭了页面,也就自动关了 ViewModel ,说了这么多,好像还没说如何在代码使用 viewModel 。...关于为何使用 cast 而不是 as ,因为已经确定了现在使用类型就是 ViewModel ,我也需要使用ViewModel 不是其他,如果有人改了其它类型,我必须报错,于是就使用 cast

    49820

    win10 uwp MVVM 轻量框架

    第一个情况如上图设计,左侧选项页面就是在程序运行不会改变,即使改变,也只是某一些选项,所以这个左侧页面,就可以尝试使用用户控件,或者连用户控件也不要,直接写就可以了。...接下来继续一个多页面通信问题。假如有一个程序,看起来和下面的图一样,有主页面,主页面有多个页面,那么这时,如何对这些页面进行通信?假如需要点击主页面的一个按钮,控制页面A元素,那么如何做?...使用 下面我来告诉大家如何使用这个框架。 首先创建一个 WPF 或 UWP 程序,可以通过 Nuget 安装或下载我源代码方式使用。...下面告诉大家如何使用Nuget安装,如果是 wpf ,那么请使用下面的代码 Install-Package lindexi.wpf.Framework 如果是 uwp ,那么请使用下面代码 Install-Package...,因为 C# 不可以多继承,所以和其他框架一起使用时,需要 ViewModel 继承其他类,那么就可以使用继承接口。

    85210

    MvvmCross 框架数据绑定语法

    MvvmCross 框架数据绑定语法 数据绑定一直是 MvvmCross (Mvx) 框架核心, 随着 Mvx 版本版本更新, 绑定语法由 Json 变化到了 Swiss 语法, 并逐渐向 Tibet...=Length Text 绑定到 ViewModel Title 属性, 并使用名称为 Length ValueConverter , 而这个 ValueConverter 是 LengthValueConverter...属性合成 Tibet 提供了属性合成技术, 数据源上多个合成为一个, 比如上面的多值绑定, 就使用了两个 Add 属性合成器三个合成为一个。...: 算符; Format(format, args…) 类似于 string.Format 函数; Add(one,two) 两个相加, 可以在绑定中使用直接使用 + 代替; GreaterThan...(one, two) 判断两个大小, 可以在绑定中使用 > 代替; 重要提示: 属性合成还处于开发, 只是基本可以工作原型, 在未来版本随时都可能变化。

    1.6K31

    win10 uwp 商业游戏 1.1.5 商店可以卖出数多个游戏修炼游戏相关文章

    本文是在win10 uwp 商业游戏 基础上继续开发,添加一些无聊游戏。 因为在发布几个月,下载量很少,小伙伴说游戏就玩不到几分钟就不想玩,于是我就想加入其他游戏。...下面开始写一个新游戏,叫修炼,这个游戏很简单,就是点击添加修为,暂时就这个。因为今天 VS 炸了,所以暂时没有使用 UWP 也打不开之前游戏,所以就重新写一个。...而修为可以使用点击来获得,所以不停点击游戏。 那么先写一个人物接口,因为还不知道人物类需要什么东西,如何加上商业游戏,所以就写接口,定义接口好处是可以通过别的地方给使用地方。...大家也看到这个代码使用 WPF 写,因为现在VS无法编译UWP,所以我就先使用 WPF 来做游戏 需要在主页面添加下面的代码让游戏可以到这里 var hnlcDbtdhsdjPage...ViewModel 判断如何可以升级就升级,不可以就告诉用户。

    2.7K00

    ViewModel 和 ViewModelProvider.Factory:ViewModel 创建者

    朋友们好,今天我向大家介绍下 ViewModel 如何使用 ViewModelProvider.Factory. ---- 现在开始 所以,我们首要问题是:什么是 ViewModelProvider.Factory...让我们在不使用 ViewModelProvider.Factory 情况下,试着创建一个 ViewModel 看看: 在活动实例化: 有没有人注意到:当我们使用 ViewModelProviders...在活动实例化 MyViewModel 时,从未没用过 MyViewModel 构造方法,而都是使用 ViewModelProviders 这个类方法。...那么,现在让我们看看,如果我们直接把参数传递给 MyViewModel 类构造方法时会发生了什么: 现在,我们在活动创建 MyViewModel 实例: 太棒了!...modelClass.getConstructor(Int::class.java) 方法是一个整型能够通过调用 newInstance 方法来想构造方法方法。

    1.7K20
    领券