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

UWP / C# -如何判断当前显示的ViewModel类型

UWP(Universal Windows Platform)是一种应用程序开发框架,它允许开发人员使用C#等编程语言创建适用于多种Windows设备的应用程序。在UWP应用程序中,ViewModel是一种用于管理应用程序的数据和业务逻辑的模式。

要判断当前显示的ViewModel类型,可以通过以下步骤进行:

  1. 首先,确保你已经创建了一个ViewModel类,该类包含了你想要在应用程序中显示和操作的数据和逻辑。
  2. 在UWP应用程序中,通常会使用一种导航框架(如Frame)来管理不同页面之间的导航。你可以通过检查导航框架的当前页面来判断当前显示的ViewModel类型。
代码语言:csharp
复制

var currentFrame = Window.Current.Content as Frame;

var currentPage = currentFrame.Content as Page;

var currentViewModel = currentPage.DataContext;

代码语言:txt
复制

上述代码首先获取了当前窗口的内容,然后将其转换为Frame对象。接下来,获取了当前页面,并从页面中获取了与之关联的ViewModel对象。

  1. 一旦获取了当前ViewModel对象,你可以使用类型检查(Type Checking)来判断其类型。
代码语言:csharp
复制

if (currentViewModel is YourViewModelType)

{

代码语言:txt
复制
   // 当前显示的ViewModel是YourViewModelType类型

}

代码语言:txt
复制

在上述代码中,将YourViewModelType替换为你实际使用的ViewModel类型。如果当前显示的ViewModel是该类型,就可以执行相应的操作。

总结起来,要判断当前显示的ViewModel类型,你需要获取当前页面的DataContext,并使用类型检查来判断其类型。这样可以根据不同的ViewModel类型执行相应的操作。

在腾讯云的产品中,与UWP开发相关的产品包括云服务器CVM、对象存储COS等。你可以通过访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

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

相关·内容

Prism 中如何判断界面当前是否显示

Prism 中如何判断界面当前是否显示 独立观察员 2024 年 5 月 15 日 一、常规导航界面 首先 VM 基类继承 WPFTemplateLib ObservableObject: 然后在...中默认已经设置了 IsVisible 值,所以按理说会走第一节中相关变动监测逻辑,不过目前有遇到过子类 IsVisibleChanged 未被触发,所以保险起见也可以在子类中直接使用 OnTabContentVisibleChanged...进行可见性判断: 那么,是否被选中(IsSelected)以及 父级是否可见(IsParentVisible)两个属性是怎么变化呢?...首先是 IsSelected,它绑定了 TabItem IsSelected: 然后是 IsParentVisible,它需要在父级可见性变化时同步修改: 这样就形成了逻辑闭环。...原创文章,转载请注明: 转载自 独立观察员 (dlgcy.com) 本文链接地址: [Prism 中如何判断界面当前是否显示](https://dlgcy.com/prism-judge-screen-is-show-or-not

10310
  • win10 uwp MVVM 轻量框架

    那么如果存在另一个按钮,用于跳转到某个特定功能页面,这时怎么办? 如果说,那就让他跳,反正我不关心,这时需要想一下,左侧页面,是否对当前显示页面做出不同颜色,如果功能页面修改了,如何知道? ?...,接收到消息是在 BModel 处理,那么需要写很多代码用于判断当前是什么消息,然后还需要写很多代码进行处理,看起来就不是一个好方法。...我将会使用一个简单例子告诉大家如何使用。如果之前没有读过win10 uwp MVVM入门 那么我建议看一下 首先是创建 ViewModel ,创建 ViewModel 可以分为两个。...还需要判断当前 ViewModel 是否可用,也就是很多和页面相同,只是重新在 ViewModel 写了,于是一个可跳转ViewModel 就需要继承 INavigable 和实现两个函数。...如果觉得当前判断还是和需要不同,那么可以使用 PredicateViewModel 自定义一个判断,只要符合需要,就发送消息给这个 ViewModel

    1.2K10

    win10 uwp 反射

    本文在h神指导下完成。 反射是强大好用,我们可以添加新功能不修改之前代码,通过使用反射得到。 本文下面和大家说如何做一个和WPF一样反射功能,如何才能获 UWP 程序集所有类。...在我写MVVM,就使用反射获得ViewModel,这样添加ViewModel 不需要修改写代码。.../ 判断类型继承 经常需要判断 UWP 类是否继承接口,如果需要判断继承接口,可以使用下面代码 判断类型是否接口 type.GetTypeInfo().IsInterface 就可以判断是否接口...C# 反射私有构造方法创建,下面来告诉大家如何写 首先需要获得构造函数,如果构造函数不是 public 那么就需要使用下面代码获得 获得方法 获得类型方法 MethodInfo[] listMethodInfo...如何判断一个类继承了接口,和一个类实现了接口?

    1.2K20

    win10 uwp MVVM 轻量框架

    那么如果存在另一个按钮,用于跳转到某个特定功能页面,这时怎么办? 如果说,那就让他跳,反正我不关心,这时需要想一下,左侧页面,是否对当前显示页面做出不同颜色,如果功能页面修改了,如何知道?...,接收到消息是在 BModel 处理,那么需要写很多代码用于判断当前是什么消息,然后还需要写很多代码进行处理,看起来就不是一个好方法。...我将会使用一个简单例子告诉大家如何使用。如果之前没有读过win10 uwp MVVM入门 那么我建议看一下 首先是创建 ViewModel ,创建 ViewModel 可以分为两个。...还需要判断当前 ViewModel 是否可用,也就是很多和页面相同,只是重新在 ViewModel 写了,于是一个可跳转ViewModel 就需要继承 INavigable 和实现两个函数。...如果觉得当前判断还是和需要不同,那么可以使用 PredicateViewModel 自定义一个判断,只要符合需要,就发送消息给这个 ViewModel

    86410

    win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199

    一个好框架是不需要写教程大家看到就会用,但是本金鱼没有那么好技术,所以需要写很长博客告诉大家如何使用我框架。...在本文开始之前,希望大家是有 UWP 基础而且熟悉 C#,因为本金鱼有很多认为是大家都知道就没有在博客说。...很多程序在启动是否都需要读取配置,这时就需要先显示一个初始页面,在这个页面显示过程,加载很多数据 在 Main 构造函数使用 LoadAsync 方法,这个方法先跳转到 SplashPage 然后再调用...如果写在页面有一个问题是如何把其他页面跳转信息发送到 ViewModel ,这个框架使用是在外面创建。 在 UWP 页面参数是在 OnNavigatedTo 函数拿到。...如何处理。

    1.3K20

    win10 uwp 依赖属性

    本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用。 本文不会告诉大家依赖属性好处,只是简单告诉大家如何使用。...在 UWP 和 wpf ,如果需要创建自己依赖属性,可以使用代码片,在 VisualStudio 可以使用 propdp 输入两个 tab 就可以输入依赖属性。...UWP 什么时候可以获取继承依赖属性 依赖属性一般是不在构造函数写获取继承属性值,因为一般这时拿到值都是没有继承,请看下面的代码 创建一个用户控件 LuenqxuhkRrjbzcf ,在他构造函数和加载完成事件添加获得.../4764916/listen-to-changes-of-dependency-property 初始化出现默认值类型与属性类型不同 定义依赖属性是需要默认值类型和定义一样,在一般代码,可以使用隐式转换...或者导入我设置,点击下载 如果想要使用C# 7 特性,可以修改代码片,或者点击下载导入 public static readonly $dependencyProperty$ $propertyName

    83320

    Android如何判断当前网络类型(联网,2g,3g,wifi等)

    一般对网络判断都是判断是否联网,不过有时候我们需要知道具体网络类型,比如在3g网络下,百度地图定位功能存在很大偏差,这就需要提前判断网络类型针对3g网络情况做特殊处理。...关于Android如何检测网络类型,网上代码很多,但是有用不多,真正解决了问题我只找到一篇(见文章末尾网址),为了更好方便自己理解,对这片文章做了解释和整理。...在android中判断网络需要用到ConnectivityManager,下面的方法演示了如何用ConnectivityManager判断当前是否联网: public static boolean...上面只是判断是否联网,跟我们目的还有很大差距,为了获得具体网络类型需要对NetworkInfo中信息进一步分解,NetworkInfogetTypeName()方法可以判断出是wifi还是mobile...wifi还是mobile网络,在通过TelephonyManager判断移动网络类型

    1.6K20

    dotnet 从入门到放弃 500 篇文章合集

    16 进制字符串转 int C# AddRange 添加位置 C# double 好用扩展 C# GUID ToString C# ValueTuple 原理 C# 不能用于文件名字符 C# 判断两条直线距离...C# 判断系统版本 C# 动态加载卸载 DLL C# 复制列表 C# 如何写 DEBUG 输出 C# 如何在项目引用x86 x64非托管代码 C# 已知点和向量,求距离C# 强转会不会抛出异常...C# 很少人知道科技 C# 快速释放内存大数组 C# 搜索算法 C# 获得设备usb信息 C# 转换类型和字符串 C# 遍历枚举 C# 金额转中文大写 C#将dll打包到程序中 c-70 c-设计模式...C# 局部函数与事件 C# 枚举转字符串 C# 相对路径转绝对路径 C# 解析 sln 文件 C# 谁改了我代码 C# 通配符转正则 C#判断文件属于文本或二进制 C#判断文件是否被混淆 C#同步方法转异步...图标颜色 win10 uwp 修改Pivot Header 颜色 win10 UWP 修改密码框文字水平 win10 uwp 关联文件 win10 uwp 切换主题 win10 uwp 判断设备类型 win10

    10.4K20

    win10 uwp 如何使用DataTemplate 转换绑定Event到Command绑定 ObservableCollectionDataTemplate 绑定 ViewM

    这是数据模板,一般用在数组绑定,显示数组中元素。...假如我们有一个列表,列表里是书,包括书名、作者、还有出版,那么我们只有源信息,如何把它显示到我们ListView,就需要DataTemplate。...我们使用x:bind需要我们对我们数据类型,这个在前没有,我开始不知,弄了好久,最后才知道,还有一个,UWP默认是OneTime,也就是绑定只有一次。...我们假如我们类型是放在Model,我们需要在开始,就是页面写我们类命名空间 转换 有时候我们绑定类型显示不同,例如我们绑定了一个bool?...但是我们在 ViewModel 类型是 bool,那么我们就需要用转换器。转换器就是继承 IValueConverter 一个类。 UWP Convert 和 WPF 差不多。

    2.6K20

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

    中间 ListView 就来绑定按钮,绑定按钮参见:win10 UWP ListView 添加列表 如果需要绑定ListView ,需要先创建一个类型,这个类型直接包括显示文字和跳转页面等,这里先显示文字...LUK幸运 悟性 在国产游戏找到属性 气血——角色当前生命值/角色当前生命值上限/角色总生命值上限,气血值为0时角色死亡 法力——角色当前法力值/角色当前法力值上限/角色总法力值上限,施放技能需要消耗法力...(dexqurhctSjyfozae); } } 这样写就是拿到 DataContext 给 ViewModel 让他判断当前修为是否可以升级 下面的代码写在...ViewModel 判断如何可以升级就升级,不可以就告诉用户。...现在游戏已经可以玩了,于是我就把他放在了 CSDN 上,大家可以尝试玩一下。 相关文章 win10 uwp 商业游戏 win10 uwp 商业游戏 1.1.5 ----

    2.7K00

    C# 设计模式 责任链

    发出这个请求客户端并不知道链上哪一个对象最终处理这个请求,这使得系统可以在不影响客户端情况下动态地重新组织和分配责任。《JAVA与模式》 我们在 C# 也可以使用责任链。...ViewModel 有一个事件,这个事件就是通知,于是就需要添加事件,在界面显示。...刚好在显示结束时候关闭双击退出。 在我之前写游戏win10 uwp 商业游戏进入游戏时,用户按下返回按钮,需要返回欢迎界面,那么这时候就需要添加后退处理。...因为我添加是 MVVM 框架,于是在跳转进游戏 ViewModel 时添加处理。关于这个框架,请看win10 uwp MVVM 轻量框架这里,但是我不会在本文用了太多这个框架东西。...当然自己添加处理也是需要判断当前是否已经有权限比他高进行处理,如果有,就不处理。这样写就可以在游戏进行返回。

    54930

    win10 UWP 标题栏后退

    本文告诉大家如何UWP 标题栏添加后退按钮 设置里,标题栏有后退按钮,请看下图 ?...在win平板,可以有后退键,手机也有,但是手机是物理,平板和 PC 后退是在标题栏做 如果需要在标题栏显示后退按钮,需要使用下面代码 Windows.UI.Core.SystemNavigationManager.GetForCurrentView...BackRequested 后退方法,如何获得参见:c# 设计模式 责任链.md 注意不要在每个页面的构造都使用添加事件,如果这样子,那么就会出现按一下后退出现你想不到异常。...好做法是在 Load 添加,Unload 去掉。如果这句代码添加在 ViewModel 需要自己在 ViewModel 关闭去掉添加事件。...Microsoft/Windows-universal-samples ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/win10-UWP

    81620

    C# 设计模式 责任链 后退按钮使用责任链

    发出这个请求客户端并不知道链上哪一个对象最终处理这个请求,这使得系统可以在不影响客户端情况下动态地重新组织和分配责任。《JAVA与模式》 我们在 C# 也可以使用责任链。...ViewModel 有一个事件,这个事件就是通知,于是就需要添加事件,在界面显示。...刚好在显示结束时候关闭双击退出。 在我之前写游戏win10 uwp 商业游戏进入游戏时,用户按下返回按钮,需要返回欢迎界面,那么这时候就需要添加后退处理。...因为我添加是 MVVM 框架,于是在跳转进游戏 ViewModel 时添加处理。关于这个框架,请看win10 uwp MVVM 轻量框架这里,但是我不会在本文用了太多这个框架东西。...当然自己添加处理也是需要判断当前是否已经有权限比他高进行处理,如果有,就不处理。这样写就可以在游戏进行返回。

    91910

    Android如何判断当前点击位置是否在圆内部

    我们都知道,一个圆形ImageView控件(本项目中使用圆形控件是github上),其实所占区域还是正方形区域,只是显示内容为圆形,当我们给ImageView设置触摸事件时,没有显示区域也会相应点击事件...,而我们可以通过计算当前点击位置来判断ImageView是否相应触摸事件。...要实现这个效果并不难,首先,先计算出圆中心点坐标(x1,y1),注意,x1,y1是相对于屏幕坐标,不是相对于布局坐标; 然后获取当前按下坐标(x2,y2),只需要计算出当前按下坐标(x2...,y2)与圆心(x1,y1)距离d长度,然后与圆半径r相比较,如果d r则当前按下点在圆之外,如果d<r,则当前按下点在圆之内, 如下图所示: ?...这样注意一下,以上都应在MotionEvent.ACTION_DOWN里面计算,当距离d大于半径r时,return false,则当前控件不消费事件, 代码如下: public class MainActivity

    2.2K20

    俄罗斯方块

    俄罗斯方块是一个很经典游戏,做一个UWP俄罗斯方块没有什么用,我想说是移植,把经典游戏移植到UWP。...我们之前有很多游戏,很多软件使用C或者C++之类来写,或者C#,其实我们可以把之前算法拿出来,转换为UWPC#,这时大家会说,界面。...对,界面我们没法直接移植,但是用XAML做一个界面很快,那么现在问题就是,我们如何使用之前算法来用现在界面。 简单一个,我们可以使用绑定。...类型grid 长 宽 是否有方块 我们界面根据rectangle显示,如果有,那么显示灰色,没有显示白色。...因为我们view是不知道后台,所以这个显示需要viewModel把后台rectangle变为颜色。

    2K10

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

    https://msdn.microsoft.com/windows/uwp/controls-and-patterns/master-details 国内晓迪文章很好,但是文章对我渣渣很难知道如何做。...本文是很简单,一般和我一样渣都能大概知道。 代码是我在很大压力会议上写,不到一个钟,写完修改,和大家说。我写很简单,可以修改我代码,可以自己写,下面我来说下如何写。...我们可以使用顺序,对,List和ContentZindex就是设置他们位置,Zindex比较大显示,也就是判断是否存在Content,存在就显示他,不存在,显示List。...当然我们可以给我们VisualState名,从e.NewState拿到Name就很简单,我们使用Narrow,判断显示屏是小还是可以显示两个 我推荐是使用第一个,因为第二个我们必须修改前台就修改ViewModel...那么我们在界面变化是否,是否知道我们显示内容还是显示列表,这时就是我们得HasFrame,依靠这个选择ZIndex 修改我代码 现在需要说下,如何修改我代码,作为你需要。

    1.9K00
    领券