简体   繁体   中英

Creating a .csv file for my esurvey application. How do I start?

I'm having trouble with coding my Esurvey application(using Windows Store C# XAML) and I really need help. I need to create a .csv database which contains all results(radiobutton selections and text inputs) but I'm not sure where to even start.

Can someone help me with this? I'm using Visual Studio Community 2013.

using FYPPrototype1.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.UI.Popups;

// The Basic Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234237

namespace FYPPrototype1
{
/// <summary>
/// A basic page that provides characteristics common to most applications.
/// </summary>
/// 


public sealed partial class SurveyPage1 : Page
{

    private NavigationHelper navigationHelper;
    private ObservableDictionary defaultViewModel = new ObservableDictionary();

    /// <summary>
    /// This can be changed to a strongly typed view model.
    /// </summary>
    public ObservableDictionary DefaultViewModel
    {
        get { return this.defaultViewModel; }
    }

    /// <summary>
    /// NavigationHelper is used on each page to aid in navigation and 
    /// process lifetime management
    /// </summary>
    public NavigationHelper NavigationHelper
    {
        get { return this.navigationHelper; }
    }


    public SurveyPage1()
    {
        this.InitializeComponent();
        this.navigationHelper = new NavigationHelper(this);
        this.navigationHelper.LoadState += navigationHelper_LoadState;
        this.navigationHelper.SaveState += navigationHelper_SaveState;
    }

    /// <summary>
    /// Populates the page with content passed during navigation. Any saved state is also
    /// provided when recreating a page from a prior session.
    /// </summary>
    /// <param name="sender">
    /// The source of the event; typically <see cref="NavigationHelper"/>
    /// </param>
    /// <param name="e">Event data that provides both the navigation parameter passed to
    /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and
    /// a dictionary of state preserved by this page during an earlier
    /// session. The state will be null the first time a page is visited.</param>
    private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
    {
        if (e.PageState != null && e.PageState.ContainsKey("rbNumber1") && e.PageState.ContainsKey("rbNumber2") && e.PageState.ContainsKey("rbNumber3") && e.PageState.ContainsKey("rbNumber4"))
        {
            radioExcellent.IsChecked = (bool)e.PageState["rbNumber1"];
            radioGood.IsChecked = (bool)e.PageState["rbNumber2"];
            radioPoor.IsChecked = (bool)e.PageState["rbNumber3"];
            radioAverage.IsChecked = (bool)e.PageState["rbNumber4"];
        }
    }

    /// <summary>
    /// Preserves state associated with this page in case the application is suspended or the
    /// page is discarded from the navigation cache.  Values must conform to the serialization
    /// requirements of <see cref="SuspensionManager.SessionState"/>.
    /// </summary>
    /// <param name="sender">The source of the event; typically <see cref="NavigationHelper"/></param>
    /// <param name="e">Event data that provides an empty dictionary to be populated with
    /// serializable state.</param>
    private void navigationHelper_SaveState(object sender, SaveStateEventArgs e)
    {
        e.PageState["rbNumber1"] = radioExcellent.IsChecked;
        e.PageState["rbNumber2"] = radioGood.IsChecked;
        e.PageState["rbNumber3"] = radioPoor.IsChecked;
        e.PageState["rbNumber4"] = radioAverage.IsChecked;
    }

    #region NavigationHelper registration

    /// The methods provided in this section are simply used to allow
    /// NavigationHelper to respond to the page's navigation methods.
    /// 
    /// Page specific logic should be placed in event handlers for the  
    /// <see cref="GridCS.Common.NavigationHelper.LoadState"/>
    /// and <see cref="GridCS.Common.NavigationHelper.SaveState"/>.
    /// The navigation parameter is available in the LoadState method 
    /// in addition to page state preserved during an earlier session.

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        navigationHelper.OnNavigatedTo(e);
    }

    protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        navigationHelper.OnNavigatedFrom(e);
    }

    #endregion

    private async void Button_S1_S2(object sender, RoutedEventArgs e)
    {
        if (radioExcellent.IsChecked != true && radioGood.IsChecked != true && radioAverage.IsChecked != true && radioPoor.IsChecked != true)
        {
            MessageDialog md = new MessageDialog("Please select an option before proceeding!");
            await md.ShowAsync();
        }

        else
        {
            this.Frame.Navigate(typeof(SurveyPage2));
        }
    }
}
}

如果需要参考,这是我的应用程序的屏幕截图。

Here is a screenshot of my application in case you need a reference.

在此处输入图片说明

This is the output that my teacher wants but I have no idea how to make it as shown :(

You can do it this way where "greetingOutputText" is the key

private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {
            // Restore values stored in session state.
            if (e.PageState != null && e.PageState.ContainsKey("greetingOutputText"))
            {
                greetingOutput.Text = e.PageState["greetingOutputText"].ToString();
            }
        }



private void navigationHelper_SaveState(object sender, SaveStateEventArgs e)
        {
            e.PageState["greetingOutputText"] = greetingOutput.Text;

        }

This link will help you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM