ObjectDataProvider MethodParameter определяют непосредственно в XAML - PullRequest
0 голосов
/ 16 ноября 2010

Я пытаюсь изменить MethodParameter непосредственно в XAML.У меня есть рабочий пример, где я устанавливаю его из кода.Версия кода:

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

ObjectDataProvider, определенный в XAML, выглядит следующим образом:

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

В любом случае я могу получить значение моего текстового поля (которое привязано к отдельному ObjectDataProvider иПоместите это вместо жестко закодированного «0» в настоящее время в моем XAML? Я хочу, чтобы это было полностью XAML и не смог заставить его работать без изменения кода.

Спасибо!

1 Ответ

0 голосов
/ 16 ноября 2010

Вы можете попробовать связать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...