Workflow Foundation'da özel etkinlikler ve tasarımcılar kullanarak bir sorun yaşıyorum.Workflow Foundation - Custom Designer'da InArgument Ata
[Designer(typeof(TesteDesigner))]
public sealed class Teste : CodeActivity
{
// Define an activity input argument of type string
[RequiredArgument]
public InArgument<string> Text { get; set; }
// If your activity returns a value, derive from CodeActivity<TResult>
// and return the value from the Execute method.
protected override void Execute(CodeActivityContext context)
{
// Obtain the runtime value of the Text input argument
string text = context.GetValue(this.Text);
}
}
Ve tasarımcı şudur: aşağıda gösterildiği gibi, söz uğruna, ben, çok basit bir aktiviteye oluşturduk
<sap:ActivityDesigner x:Class="ActivityDesignerLibrary1.TesteDesigner"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:Converters="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation">
<sap:ActivityDesigner.Resources>
<Converters:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
</sap:ActivityDesigner.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="Valor: "
VerticalAlignment="Center" />
<sapv:ExpressionTextBox HintText="Valor"
Expression="{Binding Path=ModelItem.Text, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In}"
ExpressionType="{x:Type System:String}"
OwnerActivity="{Binding Path=ModelItem}"
UseLocationExpression="True"
Grid.Column="1"
Margin="3,0,0,0" />
</Grid>
</sap:ActivityDesigner>
ben TextBox tip şeyler, ben Bir hata: geçersiz l-değeri ifadesi, ancak özellik kılavuzunda değeri yazarsanız, TextBox güncelleştirilir.
Bunu hiç kimse gördü mü?
Teşekkürler. XAML gelen
SSCCE'nizin doğruluğundan emin misiniz? Durduğu gibi, tasarım sırasında, 'Metin' * null * olacaktır, bu da ilk seferde 'ArgumentToExpressionConverter' ile ilgili sorunlara neden olabilir. 'Etkinliğiniz' içinden 'IActivityTemplateFactory' uygulamasını deneyin, 'Text'i yeni bir' InArgument 'olarak ayarlayın, iş akışınızı yeniden oluşturun (araç kutusundan tasarım yüzeyine sürükleyin!) Ve sorununuzu çözüp çözmediğine bakın. Eğer öyleyse, bana bildirin ve ben addl detayları ile bir cevaba dönüştüreceğim. –
Will
IATF hakkında daha fazla bilgi edinmek isterseniz, [nasıl çalıştığına ve nasıl kullanıldığına ilişkin cevaplarıma bakın] (http://stackoverflow.com/search?q=user%3A1228+is%3Aanswer+IActivityTemplateFactory). – Will
'Metin 'tasarım zamanında boş bırakılamaz. Doğru şekilde bağlarsanız, 'ExpressionTextBox' üzerinde bir şey yazdığınız andan itibaren boş olmaz. Aksi takdirde, örneğin 'CacheMetadata' üzerinde doğrulama yapamazsınız. – Joao