我有标准的CreateNewEntity屏幕。实体可以包含某些其他类型的实体列表。默认情况下,有一个添加按钮可在用户想要将另一个实体添加到集合中时打开模态窗口。但是,默认模态窗口缺少一些必要的功能,所以我做了一些研究。事实证明,默认模态屏幕无法修改。所以,我找到了一个不错的自定义模态窗口helper class。问题是我似乎无法访问模态窗口字段以强制执行所需的逻辑。有两个关联的下拉列表。更改为一个将导致限制其他下拉列表选项。我被困在这个特殊的部分:
var proxy = this.FindControl("DodavanjeParcele");
proxy.ControlAvailable += (s, e) =>
{
var ctrl = e.Control as System.Windows.Controls.Control;
//how to obtain access to ctrl fields?
};
" DodavanjeParcele"是自定义模态窗口。在此之前,模态窗口被实例化并初始化。它会在按下按钮后弹出,并按预期运行。唯一缺少的是上述规则。我需要为模态窗口字段设置更改事件处理程序以定义规则。如上所示,我尝试将IProxy转换为标准Windows控件。这是我被卡住的地方。我似乎无法找到访问控制字段和设置事件处理程序的方法。有什么想法吗?
答案 0 :(得分:0)
如果我理解正确,我不确定为什么你需要搜索控件或投射任何东西。
Control1
是一个创建自动完成框(下拉列表)的实体。该选择将复制到Control1_Changed
方法中的本地属性中。该属性用作过滤器查询中的参数,以创建Control2
。
<强> C#:强>
private void Control1_Changed()
{
this.MyLocalProperty = this.Control1.SelectedItem;
}
<强> VB.NET:强>
Private Sub Control1_Changed()
Me.MyLocalProperty = Me.Control1.SelectedItem
End Sub
只需确保在Control2
的属性中选中了自动执行查询,第二个控件应在Control1
更改查询参数时进行更新和过滤。
我的屏幕截图中的代码都是在Yann的模态助手中进行的,因此您无需做任何特别的事情。