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

如何判断WPF应用中Frame控件加载的页面是否为ViewDataPage

解决WPF Frame判断当前页面类型的问题

你原来的代码错误在于把实例对象和类型本身做了相等比较,ContentFrame.Content是Frame加载的页面实例,而ViewDataPage是类型,这俩根本没法用==匹配,所以永远不会触发后续操作。

正确的判断方式有两种,按需选择:

方法1:使用is关键字(推荐)

这个方式不仅能判断类型,还能直接将实例转换为目标类型,方便后续操作:

if (ContentFrame.Content is ViewDataPage viewDataPage)
{
    // 这里可以直接使用viewDataPage实例,比如调用它的方法或属性
    // Do Something.
}

方法2:使用GetType()和typeof()

如果需要精确匹配类型(不包含子类),可以用这个方式:

// 先判断Content不为null,避免空引用异常
if (ContentFrame.Content != null && ContentFrame.Content.GetType() == typeof(ViewDataPage))
{
    // Do Something.
}

额外注意事项

  • 确保已经在代码文件顶部引用了ViewDataPage所在的命名空间,比如using YourNamespace.Pages;
  • 如果ViewDataPage来自其他程序集,要确认项目已经正确引用该程序集,且类型是同一个(避免因程序集版本或重复定义导致类型不匹配)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:37:45