XAF -更改属性编辑器的值

本文关键字:编辑器 属性 XAF | 更新日期: 2023-09-27 18:15:21

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

这个不行,有什么办法吗?谢谢你

XAF -更改属性编辑器的值

您是在谈论将非持久性属性的值复制到另一个非持久性属性吗?因为在任何其他情况下,我相信有更合适的方法来复制值,使用实际属性(这里是帮助您解决这个问题的有用答案),而不是编辑器。但是,如果你确实需要这个,我相信你可以创建一个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;
                    }           
            }
        }

XAF中的每个属性编辑器从业务对象的特定属性读取值。这种专用性将您的任务简化为将特定属性的值复制到另一个属性。

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

如果业务对象没有实现INotifyPropertyChanged接口(例如,如果您正在使用实体框架代码优先),您可能还需要调用视图。方法,使新值出现在编辑器中。