来自WPF,以下问题始终是一件容易的事:
现在我要创建一个用于编辑这些类的UI。它由以下内容组成:
我已经实现了在弹出按钮中显示对象数组的内容并将选择绑定到ViewController的selectedObject。此外,我插入了一个文本字段并连接了所有内容,以便name属性正常工作(self.ViewController.selectedObject.name)。
但是如何将第二个文本字段绑定到nickName属性而不会崩溃?由于nickName仅在subClassB上可用,因此只有在subClassB实例被选中时才需要做什么才能进行绑定"?是否应通过隐藏/启用绑定切换?
感谢您的帮助!
答案 0 :(得分:1)
为了您的用户界面,为baseClass
创建一个类别/扩展程序。在此扩展中,定义两个计算属性(未经测试,在浏览器中键入):
extension baseClass {
var hasNickName: Bool { return (self as? subClassB) != nil }
var editableNickName: String? {
get { return (self as? subClassB)?.nickName }
set(newName) { (self as? subClassB)?.nickName = newName }
}
}
您可以将视图的enabled / visible属性绑定到hasNickName
,并将任何值绑定到editableNickName
,这对subClassB
的对象起作用,但{{1}为无效属性对象。