2

我創建了一個具有在設計時創建的參數的自定義活動,並且我遇到了將它們與設計器中的ExpressionTextBox相關聯的問題。在WF4活動設計器上顯示動態參數

ExpressionTextBox在設計器中顯示,它們反映了它綁定的參數的值,但是在ExpressionTextBox中輸入表達式不會路由回參數。示例/代碼是有序的。它不會讓我發佈圖片,所以鏈接將不得不做。 Designer Example

在上面的圖像中,我在第二個ETB中輸入'param2',然後單擊'Edit Arguments'按鈕。 (Edit Arguments按鈕顯示一個DynamicArgumentDialog)。如果我在DyanmicArgumentDialog中輸入一個值,但是在單擊OK時出現在設計器上。

這裏是我的設計師的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是我設計的根元素的名稱,這樣我可以從內部獲得訪問ModelItem )(我的Activity上的Arguments屬性被定義爲Collection,並且目前在列表中有兩個項目)

儘管我可以使用DynamicArgumentDialog來設置我的參數,但是我很想讓它們顯示在設計師。任何人都可以看到這個錯誤,也許爲什麼它不工作?

我也有一個樣本,如果有人想看看它。 DynamicArgumentTest

有沒有人有得到ExpressionTextBoxes與動態參數正常工作?

+0

結合託管其他地方的樣本?只有迅速的死亡。我也努力做到這一點。謝謝 – ajp

回答

0

在代碼中設置

var bind = new Binding(); 
bind.Mode = BindingMode.TwoWay; 
bind.Converter = new ArgumentToExpressionConverter(); 
bind.ConverterParameter = direction; 
bind.Path = new PropertyPath(
String.Format("ModelItem.Arguments[{0}]", argumentName)); 

//Out arguments require L-Value expression 
if (direction == "out") 
    expressionTbx.UseLocationExpression = true; 

//Set the binding and Add the expression block to the grid 
expressionTbx.SetBinding(ExpressionTextBox.ExpressionProperty, bind); 

http://blogs.microsoft.co.il/blogs/applisec/archive/2010/06/14/how-to-bind-wf-4-0-arguments-to-expressiontextbox-in-code.aspx

+0

嗨,我不知道哪裏(在設計師部分)我應該把這段代碼片斷,你能幫我嗎?該鏈接不回答這個問題。 – Bentoy13