避免数据网格行在主 - 详细信息场景中选择行时成倍增加 [英] avoid datagrid rows getting multiplied on selecting a row in master-detail scenario

查看:62
本文介绍了避免数据网格行在主 - 详细信息场景中选择行时成倍增加的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用`Linq to Entities`创建的应用程序中有Master-Detail`datagrid`。我想在详细数据网格上显示所选行的主数据网格的详细信息。



我尝试过:



I have Master-Detail `datagrid` in my application created using `Linq to Entities`. I would like to display the selected row''s deatils of the Master datagrid on the details datagrid.

what I have tried :

private void Page_Loaded(object sender, RoutedEventArgs e)
   {
       this.db = new DB_ProdEntities();
       var serverQuery = from a in this.hmdb.Servers
                         orderby a.ServerID
                         select a;
     dgServer.ItemsSource = null;
     dgServer.ItemsSource = serverQuery;
 }
 private void dgServer_SelectionChanged(object sender, SelectionChangedEventArgs e)
   {
       string serverID = (dgServer.SelectedItem as Server).Name;

       var componentQuery = from a in db.Components
                            where a.ServerID == serverID
                            orderby a.Name
                           select a;
     dgComponent.ItemsSource = null;
     dgComponent.ItemsSource = componentQuery;
   }





输出:



当我选择第一行时一切正常,但是当我选择第二行时,它会显示详细信息以及第一行的详细信息选择这样的



如何克服这个问题?



输出1-

http://postimg.org/image/9x1f616n7/ [ ^ ]



输出2

http://s16.postimg.org/4nylei9ph/op2.png [ ^ ]

推荐答案

请试用此代码





Please try this code


private void Page_Loaded(object sender, RoutedEventArgs e)
        {
if(! IsPostback)
{
            this.db = new DB_ProdEntities();
            var serverQuery = from a in this.hmdb.Servers
                              orderby a.ServerID
                              select a;
          dgServer.ItemsSource = null;
          dgServer.ItemsSource = serverQuery;
}
}
private void dgServer_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
     string serverID = (dgServer.SelectedItem as Server).Name;

            var componentQuery = from a in db.Components
                                 where a.ServerID == serverID
                                 orderby a.Name
                                select a;
          dgComponent.ItemsSource = null;
          dgComponent.ItemsSource = componentQuery;
}


这篇关于避免数据网格行在主 - 详细信息场景中选择行时成倍增加的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆