博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF通过附加属性控制窗口关闭
阅读量:6260 次
发布时间:2019-06-22

本文共 896 字,大约阅读时间需要 2 分钟。

原文:

场景1

当使用 ShowDialog() 方式显示窗口时,通过定义附加属性的方式可实现在 ViewModel 中进行数据绑定(bool?)来控制子窗口的显示和关闭

public class ExWindow{    public static bool? GetDialogResult(DependencyObject obj)    {        return (bool?)obj.GetValue(DialogResultProperty);    }    public static void SetDialogResult(DependencyObject obj, bool value)    {        obj.SetValue(DialogResultProperty, value);    }    // Using a DependencyProperty as the backing store for DialogResult.  This enables animation, styling, binding, etc...    public static readonly DependencyProperty DialogResultProperty =        DependencyProperty.RegisterAttached("DialogResult", typeof(bool?), typeof(ExWindow), new PropertyMetadata(true, (d, e) =>        {            var handler = d as Window;            handler.DialogResult = e.NewValue as bool?;        }));}
  • 参考地址:

场景2

当主窗口的显示和关闭也想通过在 ViewModel 中来进行控制的话可以通过事件和消息级制来实现,具体可参考 MVVM Light 中的 Messenger 使用方式

转载地址:http://ymqsa.baihongyu.com/

你可能感兴趣的文章
PHP 如何显示大数字,防止显示为 科学计数法 形式
查看>>
数据扩展性探讨和总结--转
查看>>
spider RPC高级特性
查看>>
C# 导出资源文件到硬盘
查看>>
修复 ThinkPHP3.2.3 抛出异常模块的一个BUG,关闭字段缓存功能
查看>>
更改MySQL数据库的编码为utf8mb4
查看>>
android自动化测试--appium运行的坑问题及解决方法
查看>>
mysql Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
查看>>
TeamCity : .NET Core 插件
查看>>
Python 爬虫知识点 - XPath
查看>>
由数量众多照片拼贴而成的马赛克图片
查看>>
如何在linux Shell脚本里面把一个数组传递到awk内部进行处理
查看>>
共模电感的原理以及使用情况
查看>>
GridLookUpEdit多列模糊查询最简单方式 z
查看>>
memcache与Redis
查看>>
Python27中Json对中文的处理
查看>>
结构,是指事物自身各种要素之间的相互关联和相互作用的方式
查看>>
andoid电阻触摸移植
查看>>
备忘录模式
查看>>
U盘安装CentOS 7卡住在 mounting configuration file system
查看>>