Задайте некоторое значение по умолчанию для DataProvider, чтобы он уже был настроен и привязан к вашему пользовательскому интерфейсу.
Примите значение от пользователя во время выполнения, а затемпередать это поставщику данных с помощью вызова FindResource и обновить ...
var myValue = GetFromUser();
((ObjectDataProvider)this.FindResource("ADUsers")).MethodParameters.Clear();
((ObjectDataProvider)this.FindResource("ADUsers")).MethodParameters.Add(myValue);
((ObjectDataProvider )this.FindResource("ADUsers")).Refresh();
Или другой сложный способ - привязка OneWayToSource с MethodParameters ...
<TextBox x:Name="UserInput">
<TextBox.Text>
<Binding Source="{StaticResource ADUsers}"
Path="MethodParameters[0]"
BindsDirectlyToSource="True"
Mode="OneWayToSource">
</Binding>
</TextBox.Text>
</TextBox>
Но для этого ваш TextBox Text (строка) должен соответствовать типу параметра, который, к сожалению, в нашем случае является целым числом.Чтобы исправить это, создайте конвертер, который позаботится об этой проблеме.
public class IntToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int intValue = 0;
string strText = value?.ToString();
if (!string.IsNullOrEmpty(strText))
{
intValue = int.Parse(strText);
}
return intValue;
}
}