WPF将文本框的行动态添加到网格布局中

本文关键字:添加 网格 布局 动态 文本 WPF | 更新日期: 2023-09-27 17:58:55

我在WPF中有一个包含Grid的窗口。CCD_ 2最初具有一行并且在该行中具有CCD_。当用户单击一个Button时,我必须在网格中添加一行TextBox。虽然这看起来是可行的,但当行超过网格的高度时,我需要网格是可滚动的。(这有点像你在电子邮件中添加附件的方式。你添加一个,然后说再添加一个……然后列表就继续了)。我这样做是正确的,还是有更好的方法?

WPF将文本框的行动态添加到网格布局中

无法回答您是否以正确的方式进行操作,因为您没有提供任何代码。

以下是我的操作方法。我的视图模型:

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>