C# WPF:网格中的动态标签添加

C# WPF:网格中的动态标签添加,c#,wpf,C#,Wpf,我必须创建一个表来显示键值之类的东西 我尝试了下面的代码,但将重叠输出搞砸了。我相信,我需要创建网格行定义和列定义,但无法实现。请帮帮我 XAML: 代码隐藏: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); AddLabelDynamically();

我必须创建一个来显示键值之类的东西

我尝试了下面的代码,但将重叠输出搞砸了。我相信,我需要创建网格行定义和列定义,但无法实现。请帮帮我

XAML:


代码隐藏:

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            AddLabelDynamically();
        }

        private void AddLabelDynamically()
        {
            for (int i = 0; i < 3; i++)
            {
                Label nameLabel = new Label(); nameLabel.Content = "KEY :"+i.ToString();
                Label dataLabel = new Label(); dataLabel.Content = "VALUE :"+i.ToString();
                //I want to creatre the Seperate coloum and row to  display KEY
                // VALUE Pair distinctly
                this.LabelGrid.Children.Add(nameLabel);
                this.LabelGrid.Children.Add(dataLabel);
            }
        }
    }
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
动态添加标签();
}
私有void addLabelDynamicly()
{
对于(int i=0;i<3;i++)
{
Label namelab=new Label();namelab.Content=“KEY:+i.ToString();
Label dataLabel=new Label();dataLabel.Content=“VALUE:”+i.ToString();
//我想创建单独的列和列来显示键
//价值对
this.LabelGrid.Children.Add(nameLabel);
this.LabelGrid.Children.Add(dataLabel);
}
}
}

您必须定义行和列定义,并将行和列分配给子控件。下面的代码是这样做的:

    private void AddLabelDynamically()
    {
        this.LabelGrid.ColumnDefinitions.Clear();
        this.LabelGrid.RowDefinitions.Clear();

        this.LabelGrid.ColumnDefinitions.Add(new ColumnDefinition());
        this.LabelGrid.ColumnDefinitions.Add(new ColumnDefinition());

        for (int i = 0; i < 3; i++)
        {
            this.LabelGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });

            Label nameLabel = new Label(); nameLabel.Content = "KEY :" + i.ToString();
            Label dataLabel = new Label(); dataLabel.Content = "VALUE :" + i.ToString();

            Grid.SetRow(nameLabel, i);
            Grid.SetRow(dataLabel, i);

            Grid.SetColumn(nameLabel, 0);
            Grid.SetColumn(dataLabel, 1);

            //I want to creatre the Seperate coloum and row to  display KEY
            // VALUE Pair distinctly
            this.LabelGrid.Children.Add(nameLabel);
            this.LabelGrid.Children.Add(dataLabel);
        }
    }
private void addLabelDynamicly()
{
this.LabelGrid.ColumnDefinitions.Clear();
this.LabelGrid.RowDefinitions.Clear();
this.LabelGrid.ColumnDefinitions.Add(new ColumnDefinition());
this.LabelGrid.ColumnDefinitions.Add(new ColumnDefinition());
对于(int i=0;i<3;i++)
{
this.LabelGrid.RowDefinitions.Add(new RowDefinition(){Height=GridLength.Auto});
Label namelab=new Label();namelab.Content=“KEY:+i.ToString();
Label dataLabel=new Label();dataLabel.Content=“VALUE:”+i.ToString();
Grid.SetRow(名称标签,i);
Grid.SetRow(数据标签,i);
Grid.SetColumn(名称标签,0);
Grid.SetColumn(dataLabel,1);
//我想创建单独的列和列来显示键
//价值对
this.LabelGrid.Children.Add(nameLabel);
this.LabelGrid.Children.Add(dataLabel);
}
}
    private void AddLabelDynamically()
    {
        this.LabelGrid.ColumnDefinitions.Clear();
        this.LabelGrid.RowDefinitions.Clear();

        this.LabelGrid.ColumnDefinitions.Add(new ColumnDefinition());
        this.LabelGrid.ColumnDefinitions.Add(new ColumnDefinition());

        for (int i = 0; i < 3; i++)
        {
            this.LabelGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });

            Label nameLabel = new Label(); nameLabel.Content = "KEY :" + i.ToString();
            Label dataLabel = new Label(); dataLabel.Content = "VALUE :" + i.ToString();

            Grid.SetRow(nameLabel, i);
            Grid.SetRow(dataLabel, i);

            Grid.SetColumn(nameLabel, 0);
            Grid.SetColumn(dataLabel, 1);

            //I want to creatre the Seperate coloum and row to  display KEY
            // VALUE Pair distinctly
            this.LabelGrid.Children.Add(nameLabel);
            this.LabelGrid.Children.Add(dataLabel);
        }
    }