我创建了一个自定义活动,其中包含在设计时创建的参数,并且在将它们与设计器中的 ExpressionTextBox 关联时遇到问题。
ExpressionTextBox 显示在设计器中,它们反映了它所绑定的 Argument 的值,但是在 ExpressionTextBox 中输入表达式不会被路由回参数。示例/代码是有序的。
它不会让我发布图片,所以必须做一个链接。 设计器示例
在上图中,我在第二个 ETB 中输入了“param2”,然后单击了“编辑参数”按钮。(编辑参数按钮显示一个 DynamicArgumentDialog)。如果我在 DyanmicArgumentDialog 中输入一个值,那么当我单击“确定”时,它确实会显示在设计器上。
这是我的设计师的 xaml(我可能遗漏了一些东西)
<ItemsControl Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding ModelItem.Arguments}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" SharedSizeGroup="nameColumn" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<sapv:ExpressionTextBox Grid.Column="1"
Expression="{Binding Path=., Mode=TwoWay, Converter={StaticResource expressionConverter}, ConverterParameter=Out}"
OwnerActivity="{Binding DataContext.ModelItem, ElementName=layoutRoot}"
ExpressionType="s:String"
UseLocationExpression="True"
MaxLines="1"
AcceptsReturn="False" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
(layoutRoot 是我的设计器的根元素的名称,这样我就可以从 ItemTemplate 内部访问 ModelItem)(我的 Activity 上的 Arguments 属性定义为 Collection 并且当前在列表中有两个项目)
虽然我可以只使用 DynamicArgumentDialog 来设置我的论点,但我希望让它们显示在设计器中。任何人都可以看到这有什么问题,也许为什么它不起作用?
如果有人想看一下,我也有一个样本。 动态参数测试
有没有人幸运地让 ExpressionTextBoxes 与动态参数一起正常工作?