Как сохранить данные в RadGridView при закрытом окне WPF?

В настоящее время я использую RadGridView от Telerik для отображения данных из базы данных. У меня также есть пустые столбцы, в которых пользователи могут вводить дополнительную информацию. Я хочу, чтобы приложение делало, как только я закрою окно для просмотра сетки, информация, которую пользователь ввел в сетку, будет сохранена, и когда я снова открою приложение, информация загрузится соответствующим образом и все еще будет там. Есть ли способ сделать это? Я искал много разных тем и форумов и не нашел четкого решения. Основная тенденция, которую я заметил, - это сохранение этой информации обратно в базу данных, но я бы по возможности избегал этого. Я попытался предложить Telerik использовать их инструмент PersistanceFramework, но безрезультатно. Если кто-нибудь может мне в этом помочь, я буду очень признателен. РЕДАКТИРОВАТЬ: Я также должен упомянуть, что я отображаю данные из базы данных с помощью запроса linq, поэтому инструмент PersistanceFramework не работает в моей ситуации. Вот запрос linq в моем Window_Loadedevent. Deduction_ID, Check_No и Check_Date - это три пустых столбца, в которые пользователи будут вводить информацию. По сути, я хочу сохранить любую информацию, которую пользователь вводит в эти столбцы, когда они закрывают окно, чтобы она оставалась там, когда они открывают его:

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        //Loads queries from each of the designated data tables in BSI_Test
        var customerQuery =
            (from customer in testEntity.Customers
             join job in testEntity.Jobs
             on customer.CID equals job.CID
             join claim in testEntity.Claims
             on job.JID equals claim.JID
             select new DataProperties
             {
                 Customer_Name = customer.CName,
                 Customer_ID = customer.CID,
                 Job_ID = job.JID,
                 Claim_ID = claim.CLAIMID,
                 Deduction_ID = DeductId,
                 Check_No = CheckNo,
                 Check_Date = CheckDate
             })
            .OrderBy(c => c.Customer_Name);

        //Populates the Telerik data grid with data.
        gridView.ItemsSource = customerQuery.ToList();
    }

Меня больше всего смущает то, что я вложил в событие Window_Closing, чтобы сохранить эту информацию, и что я вложил в Window_Loaded, чтобы загрузить информацию.


person GamerTalks    schedule 15.08.2017    source источник


Ответы (1)


Да, это возможно в Radcontrols, но это зависит от того, какую версию вы используете. Если вы используете демо-версию, вероятно, они могут не предлагать этого. Если вы используете версию с лицензией, у них это точно есть.

Способ сделать это в случае закрытия, когда вам нужно сохранить данные в базе данных (или текстовом файле, если вы не хотите сохранять данные в базе данных). Убедитесь, что вы запускаете команду обновления при закрытии события и после загрузки данных обратно вам нужно загружать данные в событии загрузки в конкретный столбец. в вашем коде я не вижу, чтобы вы загружали данные, откуда вы сохраняете данные при закрытом событии.

Надеюсь, это поможет вам решить вашу проблему.

person Community    schedule 15.08.2017
comment
Итак, я должен сохранить данные обратно в базу данных, из которой я извлекаю информацию, это то, о чем вы говорите? А как насчет столбцов, с которыми не связана база данных? Это настраиваемые столбцы, которые я создал для этого приложения, где пользователи будут вводить свою собственную информацию. - person GamerTalks; 15.08.2017
comment
Да, по вашему первому вопросу. Создайте еще один дополнительный столбец в базе данных и проверьте, когда вы загружаете данные с другими столбцами в сетку. Если этот дополнительный столбец пуст, отобразите его пустым или пропустите его загрузку. Если у вас есть данные, просто отобразите данные, как вы это делаете с другими столбцами. И когда вы закрываете В окне проверки пользователь вводит любые данные в новые столбцы и выполняет команду обновления и обновляет столбец базы данных. - person ; 15.08.2017
comment
Попался. Оказалось, что мое приложение пойдет в несколько ином направлении, поэтому в данный момент этот вопрос в значительной степени неактуален. Спасибо за ответ, так как он был полезен! - person GamerTalks; 18.08.2017