2011-06-10 88 views
-1

我在WPF中有一个窗口,其中包含一个GridGrid最初有一行,在该行中有一个TextBox。当用户点击Button时,我必须在另一个网格上添加一行TextBox。虽然这似乎是可行的,但当行数超过网格高度时,我需要网格可滚动。 (这种类似于你给电子邮件添加附件的方式,你可以添加一个,然后再说再添加一个..然后列表继续)。我是以正确的方式开展这项工作还是有更好的方法来做到这一点?WPF动态添加文本框的行到网格布局

+0

这似乎是一个很好的方式给我。你只需要使用ScrollViewer来环绕Grid,并且不应该有任何问题。我建议你尝试一下,看看它的表现如何。 – Vale 2011-06-10 08:56:23

回答

1

由于您没有提供任何代码,因此无法回答您是否正确地进行此操作。

下面是我该怎么做。我的看法型号:

public class AttachmentInfo : ViewModel 
{ 
    public string Path { get/set omitted } 
} 

public class EmailInfo : ViewModel 
{ 
    public ICollection<AttachmentInfo> Attachments { get omitted } 

    public ICommand AddAttachmentCommand { get omitted } 

    // logic for adding attachment simply adds another item to Attachments collection 
} 

在我看来,这样的事情:

<ScrollViewer> 
    <ItemsControl ItemsSource="{Binding Attachments}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <TextBox Text="{Binding Path}"/> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</ScrollViewer> 
<Button Command="{Binding AddAttachmentCommand}">Add</Button>