gpt4 book ai didi

MVVM 子属性变化检测

转载 作者:行者123 更新时间:2023-12-02 02:21:45 26 4
gpt4 key购买 nike

我的问题如下:

我正在使用 MVVM 模式,我想知道如何检测子属性的变化。

我有一个文本框:

<TextBox Name="Descripcion" Text="{Binding AccionActual.Descripcion,Mode=TwoWay}" />

在 ViewModel 中我有属性:

Accion _accionActual;
public Accion AccionActual
{
get { return _accionActual; }
set
{
_accionActual = value;
RaisePropertyChanged("AccionActual");
}
}

Accion实体定义是:

public partial class Accion : Entity
{
public Accion()
{

this.AccionesDocumentos = new HashSet<AccionDocumento>();

}

public int IdAccion { get; set; }
public int IdEmpleado { get; set; }
public string Descripcion { get; set; }
public string DescripcionDetalle { get; set; }
public bool Finalizada { get; set; }
public Nullable<int> IdExpediente { get; set; }
public Nullable<int> IdOrdenTrabajo { get; set; }
public bool Facturable { get; set; }
public Nullable<short> GestComAlbaranAño { get; set; }
public Nullable<short> GestComAlbaranEmpresa { get; set; }
public Nullable<int> GestComAlbaranNumero { get; set; }
public bool Facturado { get; set; }
public bool ComputarHorasACliente { get; set; }
public string DescripcionInterna { get; set; }

public virtual Aplicacion Aplicacione { get; set; }
public virtual AplicacionModulo AplicacionesModulo { get; set; }
public virtual Cliente Cliente { get; set; }
public virtual ClienteContacto ClientesContacto { get; set; }
public virtual Empleado Empleado { get; set; }
public virtual Expediente Expediente { get; set; }
public virtual OrdenTrabajo OrdenesTrabajo { get; set; }
public virtual ICollection<AccionDocumento> AccionesDocumentos { get; set; }


}

我可以在 ViewModel 中为 Accion 的每个属性创建一个属性,但是有什么方法可以接收更改而不必为 Accion 的每个属性创建一个属性?

最佳答案

您有两个选择 - 修改 Accion 类以实现 INotifyPropertyChanged 或创建一个 ViewModel 包装器来实现它。

你把它放在哪里取决于你——做最适合你的。有 a question on the merits of doing it in the ViewModel vs Model class here .

您可以通过查看类似 notifypropertyweaver 的内容来消除执行此操作的手动过程- 尝试使用 Google 查找 INotifyPropertyChanged Aspect Oriented Programming。有一个 Stackoverflow question on it here .

关于MVVM 子属性变化检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com