silverlight datagrid绑定问题

yc1023451515 2010-12-31 03:32:56
profiler中执行信息:
SQL:BatchStarting select * from GuestBookContent order by ID asc
SQL:BatchCompleted select * from GuestBookContent order by ID asc
为什么只调用一次查询,会执行两次这个方法(也就是执行了两次查询)?

代码如下:
1.ServicesDB:

[OperationContract]
public List<ContentInfo> QueryContent()
{
List<ContentInfo> m_ContentInfo = new List<ContentInfo>();
using (SqlDataReader dr = SqlHelper.ExecuteReader(CommandType.Text, "select * from GuestBookContent order by ID asc"))
{
while (dr.Read())
{
ContentInfo model = new ContentInfo();
model.ID = Convert.ToInt32(dr["ID"]);
model.Name = dr["Name"].ToString();
model.Email = dr["Email"].ToString();
model.Logo = dr["Logo"].ToString();
model.Content = dr["Content"].ToString();
model.Addtime = DateTime.Parse(dr["Addtime"].ToString());
model.Ip = dr["Ip"].ToString();
m_ContentInfo.Add(model);
}
}
return m_ContentInfo;
}


2.MainPage.xaml.cs:

namespace DataGridDemo
{
public partial class MainPage: UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded+=new RoutedEventHandler(MainPage_Loaded);
}
protected void MainPage_Loaded(object sender, RoutedEventArgs e)
{
EndpointAddress address = new EndpointAddress(new Uri(Application.Current.Host.Source, "/DBService.svc"));
ServiceDB.ServiceDBClient db = new DataGridDemo.ServiceDB.ServiceDBClient();
db.QueryContentCompleted+=new EventHandler<DataGridDemo.ServiceDB.QueryContentCompletedEventArgs>(db_QueryContentCompleted);
db.QueryContentAsync();
}

protected void db_QueryContentCompleted(object sender, QueryContentCompletedEventArgs e)
{
if (null == e.Error)
{
this.dgContent.ItemsSource = e.Result;
}
}
}
}


3.MainPage.xaml

<UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="DataGridDemo.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
<Grid x:Name="LayoutRoot">
<data:DataGrid x:Name="dgContent"></data:DataGrid>
</Grid>
</UserControl>
...全文
85 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yc1023451515 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jimmy_xiao0010 的回复:]
这么奇怪? MainPage 初始化了2次??

这个跟datagrid是没有关系的
[/Quote]

应该不是程序的问题,在查询分析器里面也是记录两条

谢谢哈
helloWorld1209 2010-12-31
  • 打赏
  • 举报
回复
这么奇怪? MainPage 初始化了2次??

这个跟datagrid是没有关系的
yc1023451515 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jimmy_xiao0010 的回复:]
调用到QueryContentAsync()方法的函数只是MainPage_Loaded,你调试过吗?

MainPage_Loaded方法是调用一次还是二次?

或者把
ServiceDB.ServiceDBClient db = new DataGridDemo.ServiceDB.ServiceDBClient();
db.QueryContentCompleted+=n……
[/Quote]
调用到QueryContentAsync()只有一个地方,就是MainPage_Loaded中
我把代码贴到构造函数里面运行也是一样执行两次
helloWorld1209 2010-12-31
  • 打赏
  • 举报
回复
调用到QueryContentAsync()方法的函数只是MainPage_Loaded,你调试过吗?

MainPage_Loaded方法是调用一次还是二次?

或者把
ServiceDB.ServiceDBClient db = new DataGridDemo.ServiceDB.ServiceDBClient();
db.QueryContentCompleted+=new EventHandler<DataGridDemo.ServiceDB.QueryContentCompletedEventArgs>(db_QueryContentCompleted);
db.QueryContentAsync();
直接放到构造函数里试试

8,756

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧