2

我想构建一个用于在餐厅订购产品的应用程序。服务员会说命令“Product SomeProduct,Quantity SomeQuantity,Observation SomeObservation”。我看到许多使用带有预定义命令的本地语法文件的示例。如何在运行时使用来自数据库的产品名称构造一个语法文件?

4

1 回答 1

2

您可以在文件中定义语法,然后通过代码更新可能的产品。例如,您可以拥有以下文件:

<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.0">
  <CommandSet xml:lang="en-US" Name="ProductCommandSet">
    <CommandPrefix>MyApp</CommandPrefix>
    <Example> Product some product </Example>

    <Command Name="Product">
      <Example> Product some product </Example>
      <ListenFor> Product {products} </ListenFor>
      <Feedback> Selected {products} </Feedback>
      <Navigate Target="/../View/ItemPage.xaml" />
    </Command>

    <PhraseList Label="products">

    </PhraseList>

  </CommandSet>
</VoiceCommands>

如您所见,没有可能的产品列表。从数据库加载产品列表后,您可以通过代码更新命令列表。例如,如果您在List<string>名为的类型变量上有产品列表productList

VoiceCommandSet commandSet = VoiceCommandService.InstalledCommandSets["ProductCommandSet"];
commandSet.UpdatePhraseListAsync("products", productList);
于 2013-09-24T07:14:06.007 回答