当前位置:编程学习 > C#/ASP.NET >>

SilverLight DataGrid SelectionChanged事件和DataGrid行中的点击事件互相影响

    在一个DataGrid中我添加了 SelectionChanged 事件,让用户在点击DataGrid中的某一行时做一个弹出窗体的操作,同时我还在DataGrid中每行添加了一个按钮,用户点击这个按钮可以做一个删除操作。


    现在的问题是这两个事件是互相影响的,一直是SelectionChanged 事件在执行,行中的按钮点击事件一直没有执行过,但是当选中的行没有改变时这个按钮的点击事件才会执行。


    请问高手们你们在开发的过程中是否遇到了这样的问题,你们是怎么解决这种问题的。 silverlight datagrid --------------------编程问答-------------------- 可以将SelectionChanged事件改成CellDoubleClick事件 --------------------编程问答-------------------- 谢谢你的回复,我没有找到你说的这个事件,就算可以解决冲突我想客户也不想这种解决办法。不是想换行只能是双击了? --------------------编程问答--------------------
var tempDataGrid = sender as DataGrid;
            if (tempDataGrid != null)
            {
                var frameworkElement = tempDataGrid.CurrentColumn.GetCellContent(tempDataGrid.SelectedItem);
                if (frameworkElement != null)
                {
                    string controllerName = frameworkElement.Name;
                    if (controllerName == "ControlName")
                    {
                        
                    }
                    else
                    {
                        
                    }
                }
            }

    以上代码写在DataGrid中的SelectionChanged事件里,自己想的很笨的一个方法,贴出来和大家分享一下。


    还有一个地方需要注意的是,在DataGrid行中摆放的控件也是需要写事件的。 --------------------编程问答-------------------- 找一下双击事件。这个应该有的。 --------------------编程问答--------------------

    datagrid.LoadingRow += new EventHandler<DataGridRowEventArgs>(data_LoadingRow);

      void data_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.MouseLeftButtonUp -= new MouseButtonEventHandler(Row_MouseLeftButtonUp);
            e.Row.MouseLeftButtonUp += new MouseButtonEventHandler(Row_MouseLeftButtonUp);
        }

   void Row_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            MessageBox.Show("rrr");
        }


在datagrid的LoadingRow事件中添加row的点击事件,而不是使用SelectionChanged事件,这样就算用户的Selection没有改变一样可以触发事件,而且不会和你的button事件冲突。
补充:.NET技术 ,  分析与设计
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,