2010-11-16 14 views
0

J'essaie de modifier MethodParameter directement dans le code XAML. J'ai un exemple de travail où je le mets du code. version du code est:ObjectDataProvider MethodParameter défini directement en XAML

Dim odp As New ObjectDataProvider() 
odp = FindResource("Products") 
odp.MethodParameters.Clear() 
odp.MethodParameters.Add(CType(txtCatId.Text, Integer)) 

ObjectDataProvider défini en XAML ressemble à ceci:

<ObjectDataProvider x:Key="Products" 
     ObjectInstance="{StaticResource ProductsDataProvider}" 
     MethodName="GetProdsByCatID"> 
     <ObjectDataProvider.MethodParameters> 
      <sys:Int32>0</sys:Int32> 
     </ObjectDataProvider.MethodParameters> 
    </ObjectDataProvider> 

Y at-il de toute façon je peux récupérer la valeur de mon champ de saisie (qui est lié à une ObjectDataProvider séparée et mettre cela en place du hardcoded « 0 » actuellement dans mon XAML? Je suis à la recherche d'avoir cette complètement entraînée XAML et n'ont pas été en mesure de le faire fonctionner sans changement de code.

Merci!

Répondre

0

Vous pouvez essayer de lier TextBox.Text comme celui-ci

<ObjectDataProvider x:Key="Products" 
     ObjectInstance="{StaticResource ProductsDataProvider}" 
     MethodName="GetProdsByCatID"> 
     <ObjectDataProvider.MethodParameters> 
      <sys:Int32>0</sys:Int32> 
     </ObjectDataProvider.MethodParameters> 
    </ObjectDataProvider> 

    <TextBox Text={Binding Source={StaticResource Products}, Path="MethodParameters[0]" BindsDirectlyToSource="True" Mode="OneWayToSource"}/> 

si vous avez d'autres fixations pour essayer TextBox.Text à l'utilisateur MultiBinding

<TextBox> 
    <TextBox.Text> 
     <MultiBinding Converter="..."> 
     <Binding Source="{StaticResource Products}", Path="MethodParameters[0]" BindsDirectlyToSource="True" Mode="OneWayToSource"/> 
     ... 
     </MultiBinding> 
    </TextBox.Text> 
</TextBox> 
+0

La propriété « Texte » est introuvable dans le type « Reliure ". Cette syntaxe est-elle correcte? – Matt

+0

(J'ai besoin de MultiBinding) – Matt

+0

oups désolé, essayez édité post –