WPF动态地将TextBoxes行添加到Grid布局

时间:2011-06-10 08:49:36

标签: c# wpf xaml grid

我在WPF中有一个包含Grid的窗口。 Grid最初在该行中有一行和TextBox。当用户点击Button时,我必须使用另一个TextBox向网格添加一行。虽然这似乎可行,但当行超过网格高度时,我需要网格可滚动。 (这类似于你如何添加附件到电子邮件。你添加一个,然后说再添加一个..然后列表继续)。我是以正确的方式解决这个问题还是有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分: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>