XAF - 更改PropertyEditor的值

时间:2016-10-28 15:54:17

标签: c# devexpress xaf

我正在学习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;

这不行,有什么想法吗?谢谢

2 个答案:

答案 0 :(得分:1)

您是在谈论将非持久属性的值复制到另一个非持久属性?因为在任何其他情况下,我相信有更合适的方法来复制值,使用实际属性(update of your fiddle是有用的答案来帮助你)而不是编辑。 如果你确实需要这个,我相信你可以创建一个ViewController并使用像这样的PropertyEditor属性

Item::where('item_id', '=', $item->item_id)->update($item->toArray());

答案 1 :(得分:1)

XAF中的每个属性编辑器都从业务对象的特定属性中读取值。这种特异性减少了将特定属性的值复制到另一个属性的任务。

在ViewController中,您可以使用View.CurrentObject属性访问当前业务对象。使用适当的值更新属性后,新值将立即显示在属性编辑器中。

如果业务对象未实现INotifyPropertyChanged接口(例如,如果您使用的是Entity Framework Code First),您可能还需要调用View.Refresh方法以使新值显示在编辑器中。< / p>