首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从堆栈面板中删除元素

从堆栈面板中删除元素
EN

Stack Overflow用户
提问于 2012-02-21 17:59:53
回答 4查看 13.6K关注 0票数 2

我有一个按钮,当按下它时,它会将文本框和列表框添加到堆栈面板中,并将此堆栈面板添加到另一个名为"stackPanelAdd“的堆栈面板中。就像这样:

代码语言:javascript
复制
private void buttonAdd_Click(object sender, RoutedEventArgs e)
{
    StackPanel sp = new StackPanel();
    TextBox tb = new TextBox();   
    ListBox lb = new ListBox();

    tb.Margin = new Thickness(5, 5, 5, 0);
    lb.Margin = new Thickness(5, 5, 5, 0);
    lb.Height = 200;

    sp.Children.Add(tb);
    sp.Children.Add(lb);

    stackPanelAdd.Children.Add(sp);
}

如何删除堆栈面板"stackPanelAdd“中的最后一个子项?我应该使用像stackPanelAdd.children.Remove这样的东西吗?如果是这样,那么我如何获取堆栈面板中的最后一个元素?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-21 18:03:28

尝试:

代码语言:javascript
复制
if (stackPanelAdd.Children.Count>0)
{
  stackPanelAdd.Children.RemoveAt(stackPanelAdd.Children.Count-1);
}
票数 10
EN

Stack Overflow用户

发布于 2012-02-22 01:19:02

这不是一个好主意,如果你坚持这种方法,事情迟早会变得非常混乱。在处理可以在WPF中添加和删除的项时,您需要在面板上使用某种类型的ItemsControl (您可以使用ItemsPanel属性更改面板,默认情况下它将是一个StackPanel)。

还可以通过使用data templatesdata binding来改进控件的创建,这是您应该熟悉的核心机制。

举个例子:

代码语言:javascript
复制
<ItemsControl ItemsSource="{Binding Data}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBox Text="{Binding Name}" Margin="5,5,5,0"/>
                <ListBox ItemsSource="{Binding Items}" Margin="5,5,5,0" Height="200"/>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

这里的Data是一个源集合,它应该实现INotifyCollectionChanged,然后你只需从该集合中移除一个项目,它对应的StackPanel就会消失。Data中的项应该包含绑定的属性NameItems,然后您可以为它们赋值或从中获取输入的文本(该类应该实现INPC,请阅读article on data binding中有关这些内容的更多信息)。

票数 2
EN

Stack Overflow用户

发布于 2012-02-21 18:06:56

您可以使用

代码语言:javascript
复制
var lastControl = stackPanelAdd.Children.LastOrDefault(); 
//Last is defined in System.Linq.Enumrable
if(lastControl != null)
    stackPanelAdd.Children.Remove(lastControl);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9375494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档