如何初始化一个值为“”但在这行代码中的空字符串:
Presenter.OnRazonSocialChanged(txtRazonSocial.Text);
我通过以下方式在 Presenter 的构造函数中解决了它:
public ProveedorPresenter(Proveedor model, ProveedorView view)
{
_model = model;
_view = view;
_model.RazonSocial = "";
_model.DocumentoIdentidad = "";
_model.Direccion = "";
_model.Fijo = "";
_model.Celular = "";
_model.Representante = "";
_model.Email = "";
_view.Presenter = this;
}
正如您将看到的,我依赖于 TextChanged 事件,解决方案是什么?
谢谢大家的回答,我保证会提高我的问题的质量并花更多的时间来准备它们。感谢大家,我设法以这种方式解决了它。
在 Presenter 中创建一个名为 Initialize Model 的方法
public void InicializarNodelo()
{
_model.RazonSocial = string.Empty;
_model.DocumentoIdentidad = string.Empty;
_model.Direccion = string.Empty;
_model.Fijo = string.Empty;
_model.Celular = string.Empty;
_model.Representante = string.Empty;
_model.Email = string.Empty;
}
我在 View(form) 的负载中调用它
private void ProveedorView_Load(object sender, EventArgs e)
{
Presenter.InicializarNodelo();
}
您可以使用空合并运算符
??
如果属性
Text
是null
空字符串,将被使用""
。在我看来,您想要的是验证以下内容
TextBox
:您的问题似乎与实现 MVP 设计模式有关,因此我将在考虑该上下文的情况下回答它。
看来您要做的是将空字符串分配给
txtRazonSocial.Text
并同时将其传递给Presenter.OnRazonSocialChanged()
. 您可以使用以下表达式轻松实现此目的:任何一个
但是根据另一个问题的以下代码。
及其在这里的使用
我不清楚为什么每次修改公司名称时都要在处理程序中传递空字符串,该方法的目的
txtRazonSocial_TextChanged
是通知Presenter
控件该值已更改并传递新值以便它依次可以设置在Model
.在任何情况下,如果要将控件初始化为空字符串,则应
Proveedor
在使用模型值初始化控件之前将其设置为 (model)。这是我的答案,基于其他答案(enrique7mc和Carlos)(我看不到图像)
我了解您希望防止
string
作为参数发送给函数的参数为OnRazonSocialChanged(string)
空。让我们首先说你有这个:
您将
model
类型参数分配给类Proveedor
的内部字段_model
,ProveedorPresenter
然后分配所有""
实际上没有意义的值(至少对我而言),最正确的做法是在下面创建一个构造函数方法:你给参数赋值的地方
model
有一个默认值null
,这样如果你在构造函数调用中没有指定它,它就会将_model
一个新的provider的值赋给该字段,这样这些值就会被初始化为""
(如果你指定了它在 ) 的空构造函数Proveedor
中然后在你的方法中
OnRazonSocialChanged(string)
你这样做:而且你将拥有你需要的东西,这样你就不会离开
string
你null
。