Пожалуйста, позвольте мне поделиться с вами примером функции, которая может помочь вам создать новый новый файл и сохранить там данные:
// 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')
}
})
Удачи!
Ай. После в основном половина дня, потраченного впустую на этого, я понял это. Это была полностью ошибка с моей стороны.
KVPList
был установлен на IList
из KeyValuePair<
short
,string>
, но поле данных имеет тип int
. По существу привязка данных стреляла бы и установила бы SelectedValue
свойство. Затем DisplayMember
и ValueMember
привязка стреляла бы, проверяя SelectedValue
снова. Начиная с ValueMember
имеет тип short
, нет int
, это не нашло бы соответствие и таким образом установило бы его в NULL.
Что-то забавное должно происходить с упаковкой и распаковыванием, но я также устал для понимания почему прямо сейчас.
Я оставлю на виду этот вопрос в случае, если кто-то еще сталкивается с той же проблемой. Трудно разыскать, потому что я ожидал бы, что это или попытается бросить или выдать исключение, не тихо идут пустой указатель. В конце концов, short
и int
и типы значения, и в последний раз я проверил (int)10 == (short)10
сохраняется.