1

我有标准的 CreateNewEntity 屏幕。实体可以包含一些其他类型的实体列表。默认情况下,当用户想要将另一个实体添加到集合中时,有一个添加按钮会打开模式窗口。但是,默认模式窗口缺少一些需要的功能,所以我做了一些研究。事实证明,无法修改默认模式屏幕。所以,我找到了一个不错的自定义模态窗口助手类。问题是我似乎无法访问模式窗口字段以强制执行所需的逻辑。有两个关联的下拉列表。更改一个将导致限制其他下拉列表选项。我被困在这个特定的部分:

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 控件。这就是我卡住的地方。我似乎找不到访问控制字段和设置事件处理程序的方法。有什么想法吗?

4

1 回答 1

0

如果我理解正确,我不确定您为什么需要搜索控件或投射任何内容。

Control1是一个创建自动完成框(下拉列表)的实体。该选择被复制到Control1_Changed方法中的本地属性中。该属性用作过滤器查询中的参数以创建Control2.

控制1 控制2

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 的 Modal Helper 中,所以你不需要做任何特别的事情。

于 2014-04-22T13:11:02.280 回答