在wpf

时间:2017-05-03 17:04:18

标签: c# wpf

我是WPF的新手。在这里我有以下静态网格

主网格 enter image description here

像这样的子网格框架

儿童网格

enter image description here

我有一个主网格,我试图动态生成子网格并在主网格列0中填充它

最终结果我试图在下面

enter image description here

这里我尝试使用一些样式填充项目集合(每个集合项属性都有单独的块)。

因此,对于每个集合项,我想生成一个网格并将网格中的集合属性名称和值绑定在上面的图片中,红色代表集合项目的网格,黑色网格是主网格。

非常感谢为此目的提出建议或提出更好的解决方案

修改

到目前为止我尝试过关注,在这里作为子网格我试图填充icTodoList网格3次,但这里只填充1次

XML文件

  <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="147*"/>
            <ColumnDefinition Width="220*"/>
            <ColumnDefinition Width="150*"/>
        </Grid.ColumnDefinitions>
        <ItemsControl Name="icTodoList">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <Border BorderBrush="Black" BorderThickness="1">
                            <Grid Name="icTodoList" Grid.Row="0" Grid.Column="0" Margin="0,10,10,2941" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Right" Width="268">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="79*"/>
                                    <ColumnDefinition Width="99*"/>
                                    <ColumnDefinition Width="90*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="39*"/>
                                    <RowDefinition Height="63*"/>
                                    <RowDefinition Height="29*"/>
                                </Grid.RowDefinitions>
                                <TextBlock Grid.Row="0" Grid.Column="0"  Text="{Binding Title}"/>
                                <TextBlock Grid.Row="0" Grid.Column="1"  Text="{Binding Completion}"/>
                                <TextBlock Grid.Row="0" Grid.Column="2"  Text="{Binding Description}"/>
                                <TextBlock Grid.Row="1" Grid.Column="0"  Text="{Binding Title}"/>
                                <TextBlock Grid.Row="1" Grid.Column="1"  Text="{Binding Completion}"/>
                                <TextBlock Grid.Row="1" Grid.Column="2"  Text="{Binding Description}"/>
                                <TextBlock Grid.Row="2" Grid.Column="0"  Text="{Binding Title}"/>
                                <TextBlock Grid.Row="2" Grid.Column="1"  Text="{Binding Completion}"/>
                                <TextBlock Grid.Row="2" Grid.Column="2"  Text="{Binding Description}"/>
                            </Grid>
                        </Border>
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>

文件后面的代码

    public WindowPanelConstructor()
    {
        InitializeComponent();

        List<TodoItem> items = new List<TodoItem>();

        for (int i = 0; i < 3; i++)
        {
            items.Add(new TodoItem() { Title = "Title" + i.ToString(), Completion = "Completion" + i.ToString(), Description = "Description" + i.ToString() });
            icTodoList.ItemsSource = items;
        }      


    }

    public class TodoItem
    {
        public string Title { get; set; }
        public string Completion { get; set; }
        public string Description { get; set; }
    }

0 个答案:

没有答案