2010-11-16 75 views
0

我試圖直接在XAML中修改MethodParameter。我有一個工作示例,我從代碼中設置它。代碼的版本是:在XAML定義ObjectDataProvider MethodParameter直接在XAML中定義

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

的ObjectDataProvider看起來是這樣的:

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

反正是有,我可以取回我的文本框的值(綁定到一個單獨的ObjectDataProvider也放到了地方的硬編碼「0」目前在我的XAML?我期待能有這個完全XAML驅動,一直無法得到它的工作沒有更改代碼。

謝謝!

回答

0

你可以嘗試綁定TextBox.Text這樣

<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"}/> 

如果你有其他綁定TextBox.Text嘗試用戶MultiBinding

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

屬性「文本」的類型不找到「綁定」。該語法是否正確? – Matt 2010-11-16 17:53:30

+0

(我將需要MultiBinding) – Matt 2010-11-16 17:59:02

+0

哎呀對不起,嘗試編輯帖子 – 2010-11-16 18:40:27