Member 14922390 Ответов: 1

Как заполнить столбцы один за другим в datagrid в C# WPF


Привет;
У меня есть datagrid и еще coloumns в моем проекте wpf. Я хочу, чтобы заполнить coloumns один за другим что-то пунктов. Я как-то пытался, но у меня ничего не получается. Я имею в виду; я хочу заполнить один за другим заполнить coloumns. Как я это делаю?
Извините, очень плохой английский.

Что я уже пробовал:

static Dictionary<string, Tags> m_showChipList = new Dictionary<string, Tags>();

ЕРС = 1234555622344;
Тид = 2223444222134;
pathpcbit = @".\Resources\cross.png";
m_showChipList.Add(writeResult.Tag.Tid.ToString(),
                                      new Tags
                                      {
                                          PCBit = pathpcbit
                                      });

public class Tags {
     public int NUM { get; set; }
     public string TID { get; set; }
     public string EPC { get; set; }
     public string PCBit { get; set; }
     public string WEPC { get; set; }
     public string UACCESS { get; set; }
     public string UKILL { get; set; }
     public string WACCESS { get; set; }
     public string WKILL { get; set; }
     public string LACCESS { get; set; }
     public string LKILL { get; set; }
     public string CEPC { get; set; }
     public string CACCESS { get; set; }
     public string CKILL { get; set; }
     public string CLACCESS { get; set; }
     public string CLKILL { get; set; }
 }

PCB.Add(new Tags()
                        {
                            NUM = i,
                            TID = tag.Tid.ToString(),
                            EPC = tag.Epc.ToString(),
                            PCBit = m_showChipList[tag.Tid.ToString()].PCBit,
                            WEPC = m_showChipList[tag.Tid.ToString()].WEPC,
                            UACCESS = m_showChipList[tag.Tid.ToString()].UACCESS,
                            UKILL = m_showChipList[tag.Tid.ToString()].UKILL,
                            WACCESS = m_showChipList[tag.Tid.ToString()].WACCESS,
                            WKILL = m_showChipList[tag.Tid.ToString()].WKILL,
                            LACCESS = m_showChipList[tag.Tid.ToString()].LACCESS,
                            LKILL = m_showChipList[tag.Tid.ToString()].LKILL,
                            CEPC = m_showChipList[tag.Tid.ToString()].CEPC,
                            CACCESS = m_showChipList[tag.Tid.ToString()].CACCESS,
                            CKILL = m_showChipList[tag.Tid.ToString()].CKILL,
                            CLACCESS = m_showChipList[tag.Tid.ToString()].CLACCESS,
                            CLKILL = m_showChipList[tag.Tid.ToString()].CLKILL

                        }); PCBProgrammer.Items.Add(PCB);

1 Ответов

Рейтинг:
2

Sandeep Mewara

Я бы посоветовал вам начать с чтения о MVVM:
Model-View-ViewModel (MVVM) объяснено[^]
MVVM для начинающих[^]

Вы бы настроили модель, которая является коллекцией для вашей сетки в качестве источника. Столбцы в нем сопоставляются с полями в типе объекта, из которого вы сделали коллекцию.

Теперь, в вашем случае выше, если вы хотите сделать это с помощью словаря, это будет что-то вроде:

<Window x:Class="DictionaryDataGridDemo.SingleDictView"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:local="clr-namespace:DictionaryDataGridDemo" 

    Title="test"

    Width="500"

    Height="300">
    <Window.DataContext>
        <local:MyViewModel />
    </Window.DataContext>
    <Grid>
        <DataGrid AutoGenerateColumns="True" ItemsSource="{Binding MyDictionary}">
        </DataGrid>
    </Grid>
</Window>

модель представления
public class MyViewModel
{
    public Dictionary<double, string> MyDictionary { get; set; }

    public MyViewModel()
    {
        MyDictionary = new Dictionary<double, string>();
        MyDictionary.Add(100, "AAA100");
        MyDictionary.Add(200, "BBB200");
        MyDictionary.Add(300, "CCC300");
    }
}


Member 14922390

Измените комментарий. Удаленный
Во-первых, спасибо за ваш ответ, и я постараюсь, но я хочу задать один вопрос. Мой XAML-это же такой: &ЛТ;элемент управления DataGrid.колонны&ГТ;
&ЛТ;datagridtextcolumn заголовок="номер" обязательного="{привязки клавиши num}"&ГТ;
&ЛТ;заголовок datagridtextcolumn="Тид" привязки="{привязки Тид}"&ГТ;
&ЛТ;заголовок datagridtextcolumn="ЕРС" bağlama="{привязки ЕПК}"&ГТ;
<заголовок datagridtemplatecolumn="PCBit">
&ЛТ;datagridtemplatecolumn.celltemplate&ГТ;
<табличка с датой>




<заголовок datagridtemplatecolumn="WEPC">
&ЛТ;datagridtemplatecolumn.celltemplate&ГТ;
<datatemplate>




если я успешно прочитаю epc, то заполню второе место .Но у меня нету ни малейшего представления. Как я это делаю?