Данные перезаписываются с использованием ObjectListView - PullRequest
0 голосов
/ 07 февраля 2020

Извините за плохой заголовок, трудно подвести итог.

Итак, у меня есть форма, которая будет загружать данные из базы данных:

JobModel jobModel = Data.GetJobList(model)[0];

JobModel содержит поле для списка "частей", также известный как "PartModel "

public class JobModel
{
...        
public List<PartModel> parts { get; set; }
...
}

Поэтому, когда пользователь загружает форму, я сохраняю данные, прежде чем они начнут ввод данных, назначая эту глобальную модель JobModel для ссылки в последующих сегментах кода. Кроме того, здесь также находится partsModel

public static JobModel previousJobModel = new JobModel();

public static List<PartModel> partModels = new List<PartModel>();

public void LoadFormData(int JobID)
{
...
JobModel jobModel = Data.GetJobList(model)[0];
partModels = jobModel.parts;

previousJobModel = jobModel;
...
}

Теперь происходит то, что во время сегмента кода предыдущиеJobModel.parts перезаписываются при выполнении секции DELETE кода

    private void olvJobPartList_RightClick(object sender, BrightIdeasSoftware.CellRightClickEventArgs e)
    {
        PartModel model = (PartModel)e.Model;
        if (model != null)
        {
            selectedModel = model;
            menuStripOLV.Show(Cursor.Position);
        }


    }
private void deletePartToolStripMenuItem_Click(object sender, EventArgs e)
{
    //previousJobModel.parts Count = 7
    var itemToRemove = partModels.Single(r => r.PartNumber == selectedModel.PartNumber && r.partID == 
    selectedModel.partID);
    partModels.Remove(itemToRemove);
    //previousJobModel.parts Count = 6
    populateOLV();

}

Несколько замечаний: я поместил пару точек останова в функцию «удалить», перед удалением детали из списка, предыдущийJobModel нормальный, после того, как он облажался. Я также возвращаюсь к тому, что происходит с кодированием в целом, поэтому я могу упустить что-то глупое здесь. Кроме того, изменение других полей в задании не вызывает проблем с предыдущей моделью задания, а только удаляет деталь из списка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...