向应用程序工具栏添加 Shell 命令

本课将介绍如何将命令添加到应用查询工具栏,以及编写运行时单击该命令后将执行的代码。该命令将执行参数化查询,并在屏幕上显示搜索的结果。

添加 Shell 命令。

在上一课中,添加屏幕命令栏上显示的命令。您还可以对工具栏按钮进行编程来完成其他任务,例如,打开另一个屏幕、 对数据应用筛选器或甚至发送一封电子邮件。

添加参数化查询

  1. 在**“解决方案资源管理器”中选择“客户”**节点。

  2. 在“项目”菜单上,单击“添加查询”。

  3. 在**“属性”窗口的“名称”**字段中,输入 MatchCustomer。

  4. 在**“查询设计器”中,单击“添加筛选器”**。

  5. 在第二个下拉列表中,选择**“ContactName”**。

  6. 在第四个下拉列表中,选择**“参数”**。

  7. 在最后的下拉列表中,单击**“添加新建”**。

    类型 String 的一个名为 ContactName 的新参数将添加到**“查询编辑器”“参数”**部分。

添加搜索屏幕

  1. 在工具栏上,单击**“添加屏幕”**按钮。

  2. 在**“添加新屏幕”对话框中的“选择屏幕模板”列表中,选择“搜索数据屏幕”**。

  3. 在**“屏幕名称”**字段中键入 SearchCustomer。

  4. 在**“屏幕数据”列表中,选择 – MatchCustomer,然后单击“确定”**。

  5. 在**“屏幕设计器”**中,选择 CustomerContactName 节点。

  6. 在**“属性”窗口中,选择“是参数”**属性。

将命令添加到应用程序工具栏

  1. 在**“解决方案资源管理器”**中双击 ContactList

  2. 在屏幕设计器中,展开**“屏幕命令栏”**节点。

  3. 在**“添加”列表中,选择“新建按钮”**。

    此时将出现“添加按钮”对话框。

  4. 在**“添加按钮”对话框中,先选择“新方法”,随后在“名称”框中键入 Find,然后单击“确定”**。

  5. 在**“属性”窗口中,选择“描述”**并输入“查找客户列表中选定的联系人”。

  6. 单击**“选择图像”**的链接。

  7. 在**“选择图像”对话框中,单击“导入”**。

  8. 在**“打开”对话框中,导航到包含图片的目录,选择一张图片,然后单击“打开”**。

  9. 单击**“确定”关闭“选择图像”**对话框。

  10. 在左窗格中,选择**“查找”**。

  11. 在**“属性”窗口中单击“编辑执行代码”**。

    **“代码编辑器”**将出现,并显示 Find_Execute() 方法。

  12. Find_Execute() 方法中,添加以下代码。

    Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName)
    
    Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName);
    

    当用户单击您刚创建的按钮时,此代码将显示 ShowSearchCustomer 屏幕。

  13. 按 F5 运行该应用程序。

    通过选择**“联系人”列表中的“霍华德斯奈德”并单击“查找”**按钮验证新命令。

    搜索结果

    SearchCustomer 屏幕应显示,且应显示**“大湖食品市场”的数据。当您单击“公司”列中的“大湖食品市场”时,应显示“客户详细信息”**屏幕。

详细了解

本课将介绍如何创建参数化查询来返回与 ContactName 参数匹配的**“客户”,以及如何根据查询创建搜索屏幕。您可能已经注意到 SearchCustomer 屏幕不会在运行应用程序中的“导航菜单”**上出现。基于参数化查询的屏幕只能通过执行命令打开,并不能添加到菜单中。

之后本课介绍如何将命令添加到 CurrentProductList 屏幕,给定**“显示名称”“说明”“图像”,然后添加单击命令按钮后每次都会运行的代码。该代码将执行显示 SearchCustomer 屏幕的 ShowSearchCustomer 方法。括号内的代码是该方法的参数,在这种情况下,是指“联系人”**集合中选定项的 ContactName

您可能已经注意到选择**“联系人列表”**屏幕时,应用程序工具栏上只出现该命令。因为添加到工具栏的命令是屏幕特定的,所以您必须为每个屏幕都创建独立的命令。

后续步骤

在下一课中,您将学习如何向导航菜单添加项。

下一课:自定义菜单项

请参见

任务

如何:向 Silverlight 屏幕添加自定义命令

概念

在 LightSwitch 中编写代码

其他资源

创建菜单和命令