我正在尝试直接在XAML中修改MethodParameter。我确实有一个从代码中设置它的工作示例。代码版本为:
Dim odp As New ObjectDataProvider()
odp = FindResource("Products")
odp.MethodParameters.Clear()
odp.MethodParameters.Add(CType(txtCatId.Text, Integer))在XAML中定义的ObjectDataProvider看起来像这样:
<ObjectDataProvider x:Key="Products"
ObjectInstance="{StaticResource ProductsDataProvider}"
MethodName="GetProdsByCatID">
<ObjectDataProvider.MethodParameters>
<sys:Int32>0</sys:Int32>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>有没有什么办法可以检索我的textbox的值(它被绑定到一个单独的ObjectDataProvider,并将它放在我的XAML中当前硬编码的"0“的位置?我希望这是完全XAML驱动的,没有代码更改就不能让它工作。
谢谢!
发布于 2010-11-17 01:17:23
您可以尝试像这样绑定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>https://stackoverflow.com/questions/4196877
复制相似问题