Wpf 如何克隆整个控件网格?

Wpf 如何克隆整个控件网格?,wpf,grid,clone,Wpf,Grid,Clone,我有下面的代码,基本上我无法弄清楚的是如何克隆整个网格,并将它们并排生成一个空白副本。。。。为了清楚地理解这与医院应用程序有关,网格与怀孕有关,所以当说“添加孩子”按钮时,应该在运行时创建一个全新的网格,感谢下面的帮助,这是一个可能有助于人们的链接,因为我尝试过它,但不确定如何显示它 我不确定您在这里使用的方法是否正确。我将通过创建一个带有子属性的“ChildGridControl”来解决这个问题,并让子属性处理数据绑定。向GUI添加一个新的子对象需要创建一个新的ChildGridControl

我有下面的代码,基本上我无法弄清楚的是如何克隆整个网格,并将它们并排生成一个空白副本。。。。为了清楚地理解这与医院应用程序有关,网格与怀孕有关,所以当说“添加孩子”按钮时,应该在运行时创建一个全新的网格,感谢下面的帮助,这是一个可能有助于人们的链接,因为我尝试过它,但不确定如何显示它


我不确定您在这里使用的方法是否正确。我将通过创建一个带有子属性的“ChildGridControl”来解决这个问题,并让子属性处理数据绑定。向GUI添加一个新的子对象需要创建一个新的ChildGridControl实例。

我不确定您在这里使用的方法是否正确。我将通过创建一个带有子属性的“ChildGridControl”来解决这个问题,并让子属性处理数据绑定。向GUI添加一个新的子控件需要创建一个新的ChildGridControl实例。

如果我理解正确,您应该创建一个UserControl,它将网格和后续控件封装在其中。如果我理解正确,您应该创建一个UserControl,它将网格和后续控件封装在其中。并在您希望复制该UI的任何位置使用此用户控件。

您应该将要“克隆”的对象放在
数据模板中,并从
项控件中引用此模板,然后当您需要另一个网格时,将另一项添加到项控件(或者更好地添加到控件绑定到的列表中)而
ItemsControl
将创建一个新网格并将其绑定到新对象

举个例子,看看我的博客

下面是这个应用程序的一个示例(我只留下了相关的部分,没有对它进行测试,所以可能有一些打字错误):


当您将新项目添加到列表中时,将添加整个数据模板的另一个副本。

您应该将要“克隆”的对象放入
数据模板中,并从
项目控件中引用此模板,然后当您需要另一个网格时,将另一个项目添加到项目控件中(或者更适合控件绑定到的列表)和
ItemsControl
将创建一个新网格并将其绑定到新对象

举个例子,看看我的博客

下面是这个应用程序的一个示例(我只留下了相关的部分,没有对它进行测试,所以可能有一些打字错误):


当您将新项目添加到列表中时,将添加整个数据模板的另一个副本。

因此,使用子网格控件,我将能够创建现有项目的整个新网格副本?…因此,从图表中您可以理解,如果您想查看完整项目,我需要添加这整批控件,请让我知道谢谢我想说的是你不需要“复制”该子网格。如果将子网格封装到用户控件中,则可以添加任意多个用户控件实例。另一个选项是,页面上只有一个网格,但使用不同的子网格填充。因此,使用子网格控件,我将能够创建现有网格的完整新网格副本?…以便从diagram你可以理解,我需要添加这么多控件如果你想看到完整的项目,请让我知道谢谢,我的意思是你不需要“复制”该子网格。如果将子网格封装到用户控件中,则可以添加任意多个用户控件实例。另一个选项是,页面上只有一个网格,但使用不同的子网格填充它。因此,使用子网格控件,我将能够创建现有网格的全新网格副本?…如图所示你可以理解,我需要添加这么多控件如果你想看到完整的项目,请让我知道谢谢在我绞尽脑汁思考和试图弄明白之前,它真的有点混淆任何示例应用程序嘿,NIR,我尝试了你所说的,伙计,但我发现使用它有点困难,没有真正理解…gues,我是一个noob毕竟…请帮忙直到5日才交上来…我已经在下面的链接上传了文件,我的朋友建议使用控制库请帮忙。哦,我忘了在手之前说谢谢,而且我知道你担心tinyurl可能是病毒,你可能在想,请不要怀疑我,我做了,因为我正在计算字符数感谢使用子网格控件,我将能够在现有控件的基础上创建一个全新的网格副本?…因此,从图表中,您可以理解,如果您希望看到完整的项目,我需要添加这整批控件。请让我知道,谢谢。在我绞尽脑汁思考和尝试使用我尝试了你所说的,但我发现使用起来有点困难,没有真正理解你的意思…毕竟我是一个笨蛋…请帮助我直到5日才能交上来…我已经在下面的链接上传了文件,我的朋友建议使用控制库,请帮帮忙。哦,我忘了说谢谢,我也知道你很担心关于tinyurl可能是病毒,你可能在想,请不要怀疑我,我这么做了,因为我正在计算字符数,所以使用子网格控件,我将能够制作现有控件的一个全新网格副本?…因此,从图表中,你可以理解,如果你想看到完整的项目,我需要添加这整批控件请让我知道谢谢这是我的答案,您必须创建一个包含这些项的UserControl。因此,使用子网格控件,我将能够为现有控件创建一个全新的网格副本?…因此,从图表中,您可以了解
<Window ... >
   <Window.Resources>
      <DataTemplate x:Key="ChildTemplate">
         <Grid>
            ...
            <TextBlock Text="Delivery Date:" Grid.Column="0" Grid.Row="0"/>
            <TextBox Text="{Binding DeliveryDate}" Grid.Column="1" Grid.Row="0"/>
            <TextBlock Text="Delivery Time:" Grid.Column="0" Grid.Row="1"/>
            <TextBox Text="{Binding DeliveryTime}" Grid.Column="1" Grid.Row="1"/>
            ...
         </Grid>
      </DataTemplate>
   </Window.Resources>
   ...
      <Button Content="AddChild" Click="AddChildClick"/>
   ...
      <ScrollViewer>
          <ItemsControl ItemsSource="{Binding AllChildren}" ItemsTemplate="{StaticResource ChildTemplate}">
              <ItemsControl.PanelTemplate>
                  <ItemsPanelTemplate><StackPanel Orientation="Horizontal"/></ItemPanelTemplate>
              <ItemsControl.PanelTemplate>
      </ScrollViewer>
    ...
</Window>
private void AddChildClick(object sender, RoutedEvetnArgs e)
{
   ((PostDeliveryData)DataContext).AllChildren.Add(new ChildDeliveryData());
}