WPF: динамическое добавление меток в сетке - PullRequest
0 голосов
/ 13 декабря 2010

Мне нужно создать таблицу для отображения типа KEY VALUE.

Я попробовал приведенный ниже код, но испортил перекрывающийся вывод . Я считаю, что мне нужно создать Grid RowDefinitions и ColumnDefinitions, но я не могу этого достичь. Пожалуйста, помогите мне.

XAML:

<Window x:Class="GrideLabel.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid  Name="LabelGrid"></Grid>
</Window>

Код:

    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);
            }
        }
    }

1 Ответ

0 голосов
/ 13 декабря 2010

Вы должны определить определения строк и столбцов и назначить строки и столбцы дочерним элементам управления. Следующий код делает это:

    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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...