У меня есть сетка данных, связанная со списком объектов. Пользователи могут добавить новую строку ниже, где находится курсор (в коде я создаю новый объект и вставляю его в список в подходящей позиции).
Представьте, что сетка данных имеет 4 строки
Если курсор расположен в строке № 4, то строка добавляется, однако, если курсор находится в какой-либо другой строке (1,2 или 3), я получаю следующее исключение:
Произошла исключительная ситуация System.Windows.Markup.XamlParseException
Message = "Корневой элемент отсутствует."
Источник = "PresentationFramework"
LineNumber = 0
LinePosition = 0
Трассировки стека:
в System.Windows.Markup.XamlReaderHelper.RethrowAsParseException (String keyString, Int32 lineNumber, Int32 linePosition, Exception innerException)
InnerException: System.Xml.XmlException
Message = "Корневой элемент отсутствует."
Источник = "System.Xml"
LineNumber = 0
LinePosition = 0
SourceUri = ""
Трассировки стека:
в System.Xml.XmlTextReaderImpl.Throw (исключение e)
в System.Xml.XmlTextReaderImpl.ParseDocumentContent ()
в System.Windows.Markup.XmlCompatibilityReader.Read ()
в System.Windows.Markup.XamlReaderHelper.Read (XamlNode & xamlNode)
InnerException:
ПРИМЕЧАНИЕ: при первой загрузке приложения, если я сначала добавляю строку (находясь в последней строке), я также могу добавить строку из любой другой строки. Однако, если я сначала попытаюсь добавить строку из номеров строк 1,2,3, то это не получится!
Любая помощь будет принята с благодарностью. Я полностью потерян. Я сомневаюсь, что кто-то еще испытал это, но, возможно, вы знаете, что может быть причиной этого или как я мог отладить это, так как я не знаю, с чего начать :(
private void OnAddRowBelowCursor(DataGrid datagrid)
{
try
{
int index = datagrid.SelectedIndex;
MyObject newObj = new MyObject();
ObjectList.Insert(index + 1, newObj);
Logging.log.Info("Appended object row below the cursor...");
}
catch (Exception ex)
{
Logging.log.Error("Error appending row below cursor. Reason: " + ex.ToString());
}
}
private void OnAppendRowToBottom()
{
try
{
MyObject newObj = new MyObject();
ObjectList.Add(newObj);
Logging.log.Info("Appended object row to bottom...");
}
catch (Exception ex)
{
Logging.log.Error("Error appending row to the bottom of the table. Reason: " + ex.ToString());
}
}
Я также заметил, что добавление строки в конец не дает сбоя
Спасибо