我正在学习XAF,我想知道如何访问PropertyEditor的值来更改它。我想从一个PropertyEditor中获取这个值,并将这个值放入另一个PropertyEditor的值中。我的代码是这样的:
Property Editor reserva = (PropertyEditor)((DetailView)View).FindItem("Reserva"); //This is a custom object
PropertyEditor dni = (PropertyEditor)((DetailView)View).FindItem("Dni");//This is a simple text editor
PropertyEditor dniReserva = (PropertyEditor)reserva.View.FindItem("Dni");//This is a variable from the custom object
dni.PropertyValue = dniReserva.ControlValue;这不管用,有什么想法吗?谢谢
发布于 2016-10-29 08:04:02
您是在将非持久属性的值复制到另一个非持久属性吗?因为在任何其他情况下,我认为有更合适的方法来复制值,使用实际的属性(这里是有用的答案来帮助您),而不是编辑器。但是,如果您确实需要这样做,我相信您可以创建一个ViewController并使用这样的PropertyEditor属性
foreach (PropertyEditor editor in ((DetailView)View).GetItems<PropertyEditor>())
{
var control = editor.Control as IntegerEdit;
if (control != null)
{
if (editor.Id == "Id" || editor.Caption == "Id")
{
control.Enabled = false;
}
}
}发布于 2016-10-29 14:24:50
XAF中的每个属性编辑器从业务对象的特定属性中读取值。这种特殊性将您的任务简化为将特定属性的值复制到另一个属性。
在ViewController中,可以使用View.CurrentObject属性访问当前业务对象。使用适当的值更新属性后,新值将立即显示在属性编辑器中。
如果业务对象没有实现INotifyPropertyChanged接口(例如,如果首先使用实体框架代码),则还可能需要调用View.Refresh方法以使编辑器中出现新的值。
https://stackoverflow.com/questions/40308829
复制相似问题