WPF通过附加属性控制窗口关闭
程序员文章站
2022-06-01 20:38:06
场景1 当使用 ShowDialog() 方式显示窗口时,通过定义附加属性的方式可实现在 ViewModel 中进行数据绑定(bool?)来控制子窗口的显示和关闭 参考地址: "Getting “DialogResult can be set only after Window is created ......
场景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 使用方式
上一篇: 微信公众号推广涨粉套路
推荐阅读