XAF - 更改 PropertyEditor 的值
XAF - Changing value of a PropertyEditor
我正在学习 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;
这行不通,有什么想法吗?谢谢
您是在谈论将非持久性 属性 的值复制到另一个非持久性 属性 吗?因为在任何其他情况下,我相信有更合适的方法来复制一个值,使用实际属性(here 是有用的答案来帮助你)而不是编辑器。
但是,如果您确实需要这个,我相信您可以创建一个 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 接口(例如,如果您使用 Entity Framework Code First),您可能还想调用 View.Refresh 方法使新值出现在编辑器中。
我正在学习 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;
这行不通,有什么想法吗?谢谢
您是在谈论将非持久性 属性 的值复制到另一个非持久性 属性 吗?因为在任何其他情况下,我相信有更合适的方法来复制一个值,使用实际属性(here 是有用的答案来帮助你)而不是编辑器。 但是,如果您确实需要这个,我相信您可以创建一个 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 接口(例如,如果您使用 Entity Framework Code First),您可能还想调用 View.Refresh 方法使新值出现在编辑器中。