2015-05-07 2 views
0

Я пытаюсь показать данные из таблицы tblSysproStock и отобразить ее в datagrid. Некоторые типы данных столбцов в таблице: поплавки.Доступ к свойствам сложных объектов в инициализаторе класса C# WPF

Вот фрагмент кода, как я хочу, чтобы загрузить данные в моей DataGrid:

private void FillSysproDataGrid() 
    { 
     using (DataClassesDataContext DC = new DataClassesDataContext()) 
     { 
      dgSysproStock.ItemsSource = DC.tblSysproStocks.Where<tblSysproStock>(c => c.StockID != null) 
       .Select<tblSysproStock, SSData>(m => new SSData() 
       { 
        SID = m.StockID, 
        SCode = m.StockCode, 
        SDescription = m.StockDescription, 
        SConvFactAltUom = (float)m.ConvFactAltUom, //-- Here is the problem 
        ... 
       });     
     } 
    } 

класс, который я использую:

public struct SSData 
{ 
    public string _ss; 

    public int SID { get; set; } 
    public string SCode { get; set; } 
    public string SDescription { get; set; } 
    public float SConvFactAltUom { get; set; } 
    ... 
} 

Теперь ошибка, которую я получаю -

The null value cannot be assigned to a member with type System.Single which is a non-nullable value type.

Теперь я не знаю, как получить доступ к свойствам моего сложного объекта с кодом, который я должен отображать мои данные в моем datagrid. Если бы кто-нибудь мог помочь, я был бы очень благодарен. Благодаря!

ответ

1

Проблема заключается в том, что вы назначаете null значение float, которое не является типом NULL (см. Nullable Types).

Либо используйте float?, либо измените способ присвоения значения, чтобы вы обрабатывали случай, когда он равен null.

+0

Спасибо за ваш комментарий! Я довольно неофит для кодирования, поэтому я не знаю, как реализовать «float»? внутри моего кодирования. Я попытался заменить 'SConvFactAltUom = (float) m.ConvFactAltUom,' с помощью 'SConvFactAltUom = (float?) M.ConvFactAltUom,' но он дает мне ошибку: не удается ли неявно преобразовать тип 'float?' держаться на плаву'? – CareTaker22

+0

Измените тип в 'SSData', от' public float SConvFactAltUom' до 'public float? SConvFactAltUom'. –

+0

Вот и все! большое спасибо – CareTaker22

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