[英]Is there any way to bind a property to appConfig in tornadofx?
[英]Cannot bind a nullable property with tornadofx viewmodel
我正在嘗試將域模型中的可為空屬性(字符串?)綁定到 tornadofx 視圖模型。 但是我收到編譯器錯誤。 可為空的屬性有:idCard、phone 和放電
我的代碼:
class Patient(id: EntityID<Int>) : IntEntity(id) {
companion object : IntEntityClass<Patient>(Patients)
var patientId: Int by Patients.patientId
var name: String by Patients.name
var lastName: String by Patients.lastName
var recordNumber: Int by Patients.recordNumber
var idCard: String? by Patients.idCard
var phone: String? by Patients.phone
var age: Int by Patients.age
var gender: Char by Patients.gender
var admission: DateTime by Patients.admission
var discharge: DateTime? by Patients.discharge
var specialty: String by Patients.specialty
}
class PatientViewModel(patient: Patient) : ViewModel() {
val patientId = bind { patient.observable(Patient::patientId) }
val name = bind { patient.observable(Patient::name)}
val lastName = bind { patient.observable(Patient::lastName) }
val recordNumber = bind { patient.observable(Patient::recordNumber) }
val idCard = bind { patient.observable(Patient::idCard) }
val phone = bind { patient.observable(Patient::phone)}
val age = bind { patient.observable(Patient::age) }
val gender = bind { patient.observable(Patient::gender) }
val admission = bind { patient.observable(Patient::admission) }
val discharge = bind { patient.observable(Patient::discharge) }
val specialty = bind { patient.observable(Patient::specialty) }
}
編譯器錯誤:
e: D:\projects\manager\src\main\kotlin\manager\model\Patient.kt: (49, 18): Type inference failed: Cannot infer type parameter T in inline fun <reified PropertyType : Property<T>, reified T : Any, ResultType : PropertyType> bind(autocommit: Boolean = ..., forceObjectProperty: Boolean = ..., defaultValue: T? = ..., noinline propertyProducer: () -> PropertyType?): ResultType
None of the following substitutions
(Boolean,Boolean,String?,() -> Property<String?>?)
(Boolean,Boolean,Any?,() -> Property<String?>?)
can be applied to
(() -> ObjectProperty<String?>)
嘗試使用您的模型綁定執行此操作:
val patientId = bind(Patient::patientId)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.