Мобильное приложение Windows Embedded CE 5.0 gridview C#

Я занят мобильным приложением Windows Embedded CE 5.0. Я немного застрял в данный момент. Я использую datagrid с данными. Я хочу добавить дополнительный столбец в сетку (уже сделал это. Я добавил ноль из двойного). Теперь в приложении я хочу, чтобы пользователи могли изменять значение поля (сколько единиц в одном пакете).

Вот мой код для Datagrid:

private void gridView()
    {
        conn.Open();
        string query = "select distinct s.sku_id_no SKU_id, (pt.product_type_desc|| ' ' ||ps.prod_size_desc|| ' ' ||c.colour_desc) Product_Desc, null Pack_Units from sku s , product_type pt , prod_size ps , colour c , purch_order_carton_sku pocs, purch_order_carton_sku poc, dual where pocs.order_no ='" + this.orderCode + "' and pocs.carton_code ='" + this.cartonCode + "' and pocs.sku_id_no = s.sku_id_no and s.prod_size_id_no = ps.prod_size_id_no(+) and s.colour_id_no = c.colour_id_no(+)";
        OracleDataAdapter da = new OracleDataAdapter(query, conn);
        OracleDataSet ds = new OracleDataSet();
        da.Fill(ds);
        dgSku.DataSource = ds.Tables[0]; 
    {

Затем я вызываю сетку, когда экран загружается следующим образом:

private void frmCartonContentVerification_Load(object sender, EventArgs e)
    {
        gridView();
    }

введите здесь описание изображения

Итак, выше показано, как это выглядит на данный момент. Поэтому, когда пользователь, например, щелкает первое поле Pack_Units, я хочу, чтобы он мог редактировать это поле.

Цель состоит в том, что когда они нажимают кнопку «ДАЛЕЕ», должна запускаться процедура проверки и проверять, правильно ли это. Так что было бы здорово, если бы кто-нибудь также показал мне, как получить значение из поля выбора ??

Я использую базу данных Oracle с VS 2005 С#.

Заранее спасибо!


person Werner van den Heever    schedule 05.12.2012    source источник


Ответы (2)


Чтобы получить значение текущей выбранной ячейки (предположим, что dgSku - это ваш DataGrid):

var value = dgSku[dgSku.CurrentCell.RowNumber, dgSku.CurrentCell.ColumnNumber];

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

person StaWho    schedule 05.12.2012

StaWho прав, CF не поддерживает встроенное редактирование. У Пола Яо есть хорошее решение в его книге «Программирование .Net Compact Framework».

Другим обходным решением может быть добавление одного текстового поля в форму и использование события щелчка сетки для отображения и изменения значения столбца Pack_Units для редактирования.

person josef    schedule 06.12.2012