Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用用户控件动态填充C#中的网格_C#_Wpf_Grid - Fatal编程技术网

如何用用户控件动态填充C#中的网格

如何用用户控件动态填充C#中的网格,c#,wpf,grid,C#,Wpf,Grid,我有一个简单的问题,但不知道如何搜索它!我找了好几个小时都没找到 我正在制作一个WPF应用程序,这个应用程序在它的一个窗口中有一个网格,我想用一个用户控件动态地填充这个网格,即当输入为5时 例如, 我希望我的网格中有5×5个用户控件。我能想到的最简单的解决方案是使用ItemsControl,将ItemsPanel指定为UniformGrid并绑定其大小: <ItemsControl ItemsSource="{Binding Path=MyItems}"> <Items

我有一个简单的问题,但不知道如何搜索它!我找了好几个小时都没找到

我正在制作一个WPF应用程序,这个应用程序在它的一个窗口中有一个网格,我想用一个用户控件动态地填充这个网格,即当输入为5时

例如,
我希望我的网格中有5×5个用户控件。

我能想到的最简单的解决方案是使用
ItemsControl
,将
ItemsPanel
指定为
UniformGrid
并绑定其大小:

<ItemsControl ItemsSource="{Binding Path=MyItems}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Rows="{Binding Path=Size}" Columns="{Binding Path=Size}"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

查看模型的位置大致如下所示:

public class MyClass
{
    public int Size { get; set; }

    public List<MyItemClass> MyItems{ get; set; }
}
公共类MyClass
{
公共整数大小{get;set;}
公共列表MyItems{get;set;}
}

此网格占用整个窗口吗?输入是否来自另一个窗口?窗口是否已经创建,或者您是在输入时创建的?你需要更清楚一点,你想在这里完成什么。好吧,我不知道这是必要的。不管怎样,我有一个窗口,窗口有它的内容作为用户控件,首先我们接受输入,窗口的内容被切换到另一个用户控件,当然输入被传递,新的用户控件有一个我想要填充的网格int,这个网格是用户控件的一部分,如果你使用mvvm或CodeBehind,我想两者都有,我真的不在乎我怎么做,任何方法都对我有好处。但我想我更喜欢这本书中的代码。你需要一个
ItemsControl
。这就是我要说的+1.