как добавить в список AC # из элементов управления формы - PullRequest
0 голосов
/ 11 октября 2019

У меня есть форма с несколькими текстовыми полями. Я хочу использовать входные данные в текстовых полях, чтобы добавить к списку в c #, который затем я хочу показать в сетке данных при вводе записей. Но у меня есть проблема. Я добавляю данные в текстовые поля, нажимаю на кнопку «Сетка отображения», которую я создал, и кажется, что когда-нибудь, вместо добавления элементов в список, список воссоздается. Что я делаю не так?

'' '

{
    public LotScan()
    {
        InitializeComponent();

    }

    public class LotData
    {
        public string Lot;
        public string Description { get; set; }
        public int PO { get; set; }
        public string MfgPart { get; set; }
    }

    // code to add from control data to list
    private List<LotData> LoadCollectionData()
    {
        List<LotData> lot = new List<LotData>();
        lot.Add(new LotData()
        {
            Lot = LotNo.Text,
            Description = frmDescription.Text,
            PO = int.Parse(frmPO.Text),
            MfgPart = frmMfgPart.Text,
        });
        return lot;

    }

    //button to add list data to datagrid on form
    private void Button_Click(object sender, RoutedEventArgs e)
    {          
        gridLotData.ItemsSource = LoadCollectionData();

        LotNo.Text = String.Empty;
        frmMfgPart.Text = string.Empty;
        frmDescription.Text = String.Empty;
        frmMfgPart.Text = string.Empty;
        frmPO.Text = string.Empty;
    }

' ''

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Переместите эту переменную в личную переменную-член (просто поместите ее на строку выше метода конструктора классов):

List<LotData> lot = new List<LotData>();
0 голосов
/ 11 октября 2019
    public LotScan()
    {
        InitializeComponent();

        gridLotData.ItemsSource = LotDataList;
    }

    private LotData LoadCollectionData()
    {
        return new LotData()
        {
            Lot = LotNo.Text,
            Description = frmDescription.Text,
            PO = int.Parse(frmPO.Text),
            MfgPart = frmMfgPart.Text,
        };

    }

    public class LotData
    {
        public string Lot;
        public string Description { get; set; }
        public int PO { get; set; }
        public string MfgPart { get; set; }
    }

    public ObservableCollection<LotData> LotDataList = new ObservableCollection<LotData>();

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        LotDataList.Add(LoadCollectionData());
        LotNo.Text = String.Empty;
        frmMfgPart.Text = string.Empty;
        frmDescription.Text = String.Empty;
        frmMfgPart.Text = string.Empty;
        frmPO.Text = string.Empty;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...