मुझे वर्कफ़्लो फाउंडेशन में कस्टम गतिविधियों और डिज़ाइनरों का उपयोग करने में समस्या आ रही है।वर्कफ़्लो फाउंडेशन - कस्टम डिज़ाइनर में इनरगुमेंट असाइन करें
[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);
}
}
और डिजाइनर निम्नलिखित है:: प्रश्न के लिए, मैं एक बहुत ही सरल गतिविधि के रूप में नीचे दिखाया गया है बना लिया है,
<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>
जब मैं पाठ बॉक्स में कुछ लिखते हैं, मैं एक त्रुटि प्राप्त करें: अमान्य एल-मान अभिव्यक्ति, लेकिन यदि मैं प्रॉपर्टी ग्रिड पर मान टाइप करता हूं, तो टेक्स्टबॉक्स अपडेट किया जाता है।
क्या किसी ने इसे कभी देखा है?
धन्यवाद। अपने XAML से
क्या आप सुनिश्चित हैं कि आपका एसएससीसीई सही है? जैसा कि यह खड़ा है, डिजाइन के समय, 'टेक्स्ट' * शून्य * होगा, जो पहली बार' ArgumentToExpressionConverter' के साथ समस्याएं पैदा कर सकता है। अपने 'गतिविधि' के भीतर 'IActivityTemplateFactory' को लागू करने का प्रयास करें,' टेक्स्ट 'को एक नए' इनरग्यूमेंट 'के बराबर सेट करें, अपना वर्कफ़्लो दोबारा बनाएं (इसे टूलबॉक्स से डिज़ाइन सतह पर खींचें!) और देखें कि यह आपकी समस्या को हल करता है या नहीं। यदि ऐसा है, तो मुझे बताएं और मैं इसे एडीएल विवरण के साथ एक उत्तर में बदल दूंगा। –
Will
यदि आप आईएटीएफ के बारे में अधिक जानकारी चाहते हैं, [यह कैसे काम करता है और इसका उपयोग कैसे किया जाता है इसके बारे में मेरे उत्तरों की जांच करें] (http://stackoverflow.com/search?q=user%3A1228+is%3Aanswer+IActivityTemplateFactory)। – Will
'टेक्स्ट' डिज़ाइन समय पर शून्य नहीं होगा। यदि आप इसे सही तरीके से बांधते हैं तो यह 'ExpressionTextBox' पर कुछ लिखने के समय से शून्य नहीं होगा। अन्यथा आप उदाहरण के लिए 'कैशमैटाडाटा' पर सत्यापन नहीं कर पाएंगे। – Joao