【发布时间】:2018-01-11 14:37:08
【问题描述】:
我有一个 Camera 对象,它具有 Name、SensorWidth、SensorHeight 等属性。我想将这些属性绑定到 UI,但 Camera 在应用程序启动时为空(用户可以选择任何相机)。只有当相机打开时,相机对象才会被初始化(并加载它的所有属性)。
有没有办法在 XAML 中设置数据绑定,以便在初始化对象时开始工作?
我可以在 C# 中轻松做到这一点 - 打开相机后设置数据绑定,但这必须在后面的查看代码中完成,这可能对我正在使用的 MVVM 模式不利,因为打开相机的按钮使用命令与 ViewModel 通信的接口。
正确处理这个问题的方法是什么?
【问题讨论】:
-
WPF 数据绑定在属性路径中的任何属性为空时都没有问题。您可以声明一个最初为 null 的 Camera 属性并像
{Binding Camera.Name}一样绑定。您只需确保 Camera 属性触发更改通知。 -
你说得对,当然我错过了相机属性中的事件
标签: c# wpf mvvm data-binding