Привязка ComboBox к IList и использование SelectedValue

Пожалуйста, позвольте мне поделиться с вами примером функции, которая может помочь вам создать новый новый файл и сохранить там данные:

 // Open the file for writing
  fs.open('your/path/nameOfFile.json', 'wx', (err, fileDescriptor)=>{
        //'w' - Open file for writing. The file is created (if it does not exist) 
        //or truncated (if it exists).
        //'wx' - Like 'w' but fails if the path exists.
        //'w+' - Open file for reading and writing. The file is created (if it does not exist)
        //or truncated (if it exists).
        //'wx+' - Like 'w+' but fails if the path exists.
        //open the file we want to create
        //wx:open the file for writing
        //fileDescriptor: part of callback returned, is a unique identifier
    if(!err && fileDescriptor){
      // Convert data to string
      const stringData = JSON.stringify(data)

      // Write to file and close it
      fs.writeFile(fileDescriptor, stringData,err=>{
        if(!err){
          fs.close(fileDescriptor,err=>{
            if(!err){
              callback(false)
            } else {
              callback('Error closing new file')
            }
          })
        } else {
          callback('Error writing to new file')
        }
      })
    } else {
      callback('Could not create new file, it may already exist')
    }
  })

Удачи!

5
задан lc. 7 January 2009 в 16:28
поделиться

1 ответ

Ай. После в основном половина дня, потраченного впустую на этого, я понял это. Это была полностью ошибка с моей стороны.

KVPList был установлен на IList из KeyValuePair<short,string>, но поле данных имеет тип int. По существу привязка данных стреляла бы и установила бы SelectedValue свойство. Затем DisplayMember и ValueMember привязка стреляла бы, проверяя SelectedValue снова. Начиная с ValueMember имеет тип short, нет int, это не нашло бы соответствие и таким образом установило бы его в NULL.

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

Я оставлю на виду этот вопрос в случае, если кто-то еще сталкивается с той же проблемой. Трудно разыскать, потому что я ожидал бы, что это или попытается бросить или выдать исключение, не тихо идут пустой указатель. В конце концов, short и int и типы значения, и в последний раз я проверил (int)10 == (short)10 сохраняется.

7
ответ дан 14 December 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: