wpf中通过ObjectDataProvider实现文本框的双向数据绑定(ps:适用于在文本框比较多的时候使用)

前端代码:

也页面的xaml中引入ObjectDataProvider:

<Window.Resources>
<ResourceDictionary>
<ObjectDataProvider x:Key="GoodsDetail"/>
</ResourceDictionary>
</Window.Resources>

然后在文本框里面绑定数据:

<TextBox Margin="10" Text="{Binding Source={StaticResource GoodsDetail},Path=temp}"/>
<TextBox Margin="10" Text="{Binding Source={StaticResource GoodsDetail},Path=temp1}"/>

这里添加一个button,用于检测提交后的ObjectDataProvider
<Button Content="提交信息" Margin="10" Click="Button_Click"/>

后端代码:

1.在xaml.cs的后台代码中,设置一个myObject的属性

public ObjectDataProvider myObject
{
get
{
return TryFindResource("GoodsDetail") as ObjectDataProvider;//找到前端设置的资源文件
}
}

2.创建一个OrderInfo类,用于接受myObject.ObjectInstance对象

public class OrderInfo
{
public string temp { get; set; }
public string temp1 { get; set; }
}

3.这一步也是最重要的部分,在页面初始化的时候,初始化myObject.ObjectInstance。

public MainWindow()
{
InitializeComponent();
OrderInfo obj = new OrderInfo()
{
temp = "11da",
temp1="admin"
};
setData(obj);
}

public void setData(OrderInfo obj)
{
myObject.ObjectInstance = obj;
}

最后是button事件的debug检验,这个需要自己打断点查看

private void Button_Click(object sender, RoutedEventArgs e)

{
OrderInfo obj= myObject.ObjectInstance as OrderInfo;
}

 

posted on 2017-08-03 11:02  栖梧  阅读(664)  评论(0编辑  收藏  举报