2009-11-26 84 views
2

我有一个silverlight数据网格与一个单一的可编辑列。该列有一个组合框。要打开组合我必须单击单元格三个次。一次选择行,一次进入编辑模式,一次打开组合。Silverlight的datagrid行编辑模式

alt text http://lh4.ggpht.com/_L9TmtwXFtew/Sw6YursbUmI/AAAAAAAAGlg/QJCLu0K7o_8/image_thumb%5B6%5D.png

恕我直言,这是非常糟糕的UX所以我想该行,当用户执行行点击或鼠标,进入编辑模式,并允许组合要与一个单一的点击时打开。

如果用户将鼠标移出行,该行将退出编辑模式。

这可能吗? 解决这个问题的最好方法是什么?

谢谢, 马克

回答

0

设置datagrid.selectedIndex会解决这个问题

2

简单的办法:处理DataGrid_MouseLeftButtonUp,让你期望的行为。

void MyDataGrid_MouseLeftButtonUp(sender , e) 
{   
    if (MyDataGrid.SelectedItem != null) //ensure we have current item 
    { 

     //set current column 
     MyDataGrid.CurrentColumn = MyDataGrid.Columns[4]; 

     //call begin edit 
     MyDataGrid.BeginEdit(); 

     //now open combobox 
     MyComboBox.IsDropDownOpen = true; // a.) 
    } 
} 

我希望你抓住ideea。

a)*这里我不确定是否100%正常工作。 (当然,你需要MyComboBox(列模板中定义ComboBox控件)参考*

好运
rlodina

+0

只是出于愚蠢好奇心,这是否已经过测试?我问,因为我需要一些类似的功能,但需要能够使用箭头键导航网格,然后允许用户在开始按键时开始编辑,而无需点击,然后单击你通常必须做的事。Thx。 – 2010-01-27 19:03:22

+0

谢谢rlodina,它的功能很有魅力 – 2012-06-15 23:14:37

+0

新的这个,你如何得到MyComboBox的参考? – epitka 2012-10-05 15:28:17