c# – 如何在运行时动态地将值传递给ObjectDataProvider.MethodParameters
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何在运行时动态地将值传递给ObjectDataProvider.MethodParameters,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1958字,纯文字阅读大概需要3分钟。
内容图文
我写了这段代码:
public class CustomData
{
public int F1 { get; set; }
public int F2 { get; set; }
public string F3 { get; set; }
}
public class RetrievCustomData : List<CustomData>
{
public RetrievCustomData GetSome(int i)
{
for (int j = 0; j < i; j++)
{
CustomData cd = new CustomData();
Random rnd = new Random();
cd.F1 = j;
cd.F2 = rnd.Next(i);
cd.F3 = "nima";
this.Add(cd);
}
return this;
}
}
和:
<Window.Resources>
<ObjectDataProvider x:Key="ADUsers" ObjectType="{x:Type src:RetrievCustomData}"
MethodName="GetSome">
<ObjectDataProvider.MethodParameters>
<sys:Int32>20</sys:Int32>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
我想动态传递我的参数(这里是20)值(得到用户).我怎么能这样做?
thaks
解决方法:
>为DataProvider提供一些默认值,以便它已经设置并绑定到UI.
>在运行时接受来自用户的值,然后使用FindResource调用将其提供给数据提供者并刷新…
var myValue = GetFromUser();
((ObjectDataProvider)this.FindResource("ADUsers")).MethodParameters.Clear();
((ObjectDataProvider)this.FindResource("ADUsers")).MethodParameters.Add(myValue);
((ObjectDataProvider )this.FindResource("ADUsers")).Refresh();
或者另一个棘手的方法是使用MethodParameters绑定OneWayToSource …
<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;
}
}
内容总结
以上是互联网集市为您收集整理的c# – 如何在运行时动态地将值传递给ObjectDataProvider.MethodParameters全部内容,希望文章能够帮你解决c# – 如何在运行时动态地将值传递给ObjectDataProvider.MethodParameters所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。