krish.krish Ответов: 1

Дважды щелкните строку datagrid, чтобы открыть форму редактирования в WPF C#


дважды щелкните строку datagrid, чтобы открыть форму редактирования в wpf c#


я хочу открыть выбранные детали сетки строк в другой форме с заполнением.

Компания editcompany = новая компания();

Объекта datarowview ДРВ = dgvCommon.Элемент в качестве объекта datarowview;

editcompany. cmpID = конвертировать.ToInt32(drv ["CompanyId"].Метод toString());

NavigationService navService = NavigationService.GetNavigationService (это);

навсервис.Навигация(editcompany);

Что я уже пробовал:

я получил ошибку в этой строке, как
Ссылка на объект не установлена на экземпляр объекта.


editcompany. cmpID = конвертировать.ToInt32(drv ["CompanyId"].Метод toString());

1 Ответов

Рейтинг:
5

Afzaal Ahmad Zeeshan

Сообщение об ошибке довольно аккуратное и ясно говорит вам, что не так. Ваш объект равен нулю, используйте это,

editcompany.cmpID = Convert.ToInt32((drv["CompanyId"] ?? String.Empty).ToString());

Вы также можете использовать простой if...else блок для предварительной проверки нулевых значений.

Что такое нулевая ошибка при выполнении кода[^]
c# - проверка на null перед ToString () - переполнение стека[^]
Подход C# для предотвращения нулевых ссылок в строках-Code Review Stack Exchange[^]


krish.krish

опять же он показывает ту же ошибку на этой строке

Afzaal Ahmad Zeeshan

Затем убедитесь, что весь ваш объект не является нулевым-оберните код внутри if...else, и отлаживать код, чтобы увидеть, где объект является нулевым. Затем установите эти объекты в экземпляр.

krish.krish

у меня уже есть заявление по делу switch.

Afzaal Ahmad Zeeshan

Как вы реализуете оператор switch? Проверяет ли он какие-либо нулевые значения?

krish.krish

смотрите мой код

переключатель (имя формы)
{
кейс " компания Мастер":
{
Компания editcompany = новая компания();


Объекта datarowview ДРВ = dgvCommon.Элемент в качестве объекта datarowview;


editcompany. cmpID = конвертировать.ToInt32 ((drv ["CompanyId"] ?? Строка.Пустой).Метод toString());



editcompany.операция = Операция;


NavigationService navService = NavigationService.GetNavigationService (это);


навсервис.Навигация(editcompany);

перерыв;
}
кейс " клиент мастер":
{
Customer editcustomer = новый клиент();

Объекта datarowview ДРВ = dgvCommon.Элемент в качестве объекта datarowview;


editcompany. cusid= конвертировать.ToInt32 ((drv ["cusid"] ?? Строка.Пустой).Метод toString());




editcustomer.операция = Операция;


NavigationService navService = NavigationService.GetNavigationService (это);


навсервис.Навигация(editcustomer);
перерыв;
}

}

Afzaal Ahmad Zeeshan

Это делает нет проверить наличие значения null. Вот почему это не сработает для того, что я говорю. Вам нужно что-то вроде,

if (drv != null) {
// code.
}

Что-то вроде этого.

krish.krish

значение ДРВ имеет значение null

Afzaal Ahmad Zeeshan

Затем установите его на новый объект. :-)

Например, новый DataRowView и т. д.

krish.krish

пожалуйста помогите мне я хочу чтобы datagrid выделил данные строки в другой форме с заполнением