2009-11-26 4 views
2

У меня есть datagrid silverlight с единственной редактируемой колонкой. В этом столбце есть поле со списком. Чтобы открыть комбо, я должен щелкнуть по ячейке три раз. Однажды выберите строку, один раз, чтобы войти в режим редактирования, и один раз, чтобы открыть комбо.Режим редактирования строк строки Silverlight

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.) 
    } 
} 

Надеюсь, вы поймаете идее.

a) * здесь я не уверен, если 100% работает. (и, конечно же, вам нужна ссылка на MyComboBox (управления ComboBox определяется в шаблоне столбца) *

удачи
rlodina

+0

Просто из немого любопытство, это еще не проверено? Я спрашиваю, потому что мне нужна несколько схожая функциональность, но нужно иметь возможность перемещаться по сетке с помощью клавиш со стрелками, а затем разрешать пользователю с самого начала нажатия клавиши начинать редактирование без щелчок и щелчок, который вам обычно нужно делать. Thx. –

+0

Спасибо rlodina, он работал как шарм –

+0

Новым для этого, так как вы получаете ссылку на MyComboBox? – epitka

Смежные вопросы