将自定义参数传递到Lightswitch中的屏幕

时间:2012-11-20 21:03:17

标签: visual-studio-lightswitch

我有一张表“发票”和一张表“支票”。我有一个用于创建发票的屏幕和一个用于创建支票的屏幕。在支票屏幕中,我有一个“选择发票”按钮。单击该按钮将打开“发票”屏幕,以便用户可以选择要添加到当前“检查”的发票。

在发票屏幕中,我添加了一个命令按钮“添加到支票”,因此当用户点击按钮时,发票就会添加到支票中。

以下是发票屏幕的屏幕截图。

enter image description here

问题:

  1. 这种方法是正确的吗?我的意思是,有没有更好的方法将发票添加到支票?
  2. 如果这是方法,那么我如何将当前的Check实例传递到Invoices屏幕,以便我可以填写Invoices表中的Checks属性?

2 个答案:

答案 0 :(得分:1)

根据我的理解,您有两个屏幕:发票屏幕和支票屏幕。我建议的是以下步骤:

  1. 在“发票”屏幕上创建checkId属性
  2. 将checkId属性标记为屏幕参数
  3. 单击按钮并导航至“发票”屏幕时,请传递 所选检查的ID
  4. 在“发票”屏幕的已创建事件中,处理checkId 属性。
  5. 您可以加载检查对象,然后可以使用该对象进行填充 在Checks属性中。

答案 1 :(得分:0)

  1. 是的,这看起来像是一个好方法
  2. 根据您的屏幕设计,单击按钮时我不需要打开发票屏幕。
  3. 您需要做的就是:

    <强> VB:

    Private Sub ButtonName_Execute
        If (Me.Invoices.SelectedItem Is Nothing) Then Return
    
        Me.Invoices.SelectedItem.Check = Me.CheckProperty
    End Sub
    

    <强> C#:

    private void ButtonName_Execute()
    {
        if (this.Invoices.SelectedItem == null) { return; }
    
        this.Invoices.SelectedItem.Check = this.CheckProperty;
    }
    

    这假设 Listado de Ofertas / Facturas 集合的名称是 Invoices ,如果是其他内容(例如 Facturas ) ,只需替换集合的实际名称。与CheckProperty名称相同的处理,只需替换屏幕绑定的Check属性的实际名称。