none
WPF中如何删除Grid中指定的某个单元格中的内容 RRS feed

  • 问题

  • 我把主窗格用grid分成了两行两列,也就是四块。我每次都会(1行,1列)这个单元格的内容的改变。

    比如点击某个按钮,这个里面会出现一个用户控件A,点击另外一个按钮,这个里面会出现一个用户控件B。

    但是用户控件和A是叠在一起了,每次我显示显得用户控件之前我应该先清一下这个单元格。

    我看到了有

    grid.Children.Remove(用户控件);这个样子的函数可以删除指定的控件,可是我每次点击按钮之前不想查现在这个单元格里都有啥控件,然后删除在显示我要的新的控件,我觉得很麻烦。

    有没有什么方法可以实现,我在显示我要的东西之前,先清一下这个单元格啊?

    千万别让我一下子把某行或者某列直接删除,因为,这个单元格对应的整列和整行中还有别的我不想删除的东西呢。


    Jason


    2013年11月19日 6:50

答案

  • Jason,您好,

    >>这个样子的函数可以删除指定的控件,可是我每次点击按钮之前不想查现在这个单元格里都有啥控件,然后删除在显示我要的新的控件,我觉得很麻烦。

    据我所知,我也查了相关的资料,这个是不可行的。我们必须找到指定的对象才能删除,Grid木有提供这样的API来直接删除这样的内容。但是Microsoft一直在收集用户的反馈,技术或者产品的。您可以将您的这个建议通过下面的链接提供给Microsoft。当然我也会通过内部途径反馈这个需求。

    http://visualstudio.uservoice.com/forums/121579-visual-studio

    忘了说了,有一种方式可以清空这个Grid的控件内容,可以不需要事先获得这个对象的名称,GridChildren有一个Clear方法,可以清空这个Grid内部所有的控件,但是你用来添加控件的按钮不可以置于这个Grid内部,否则会被清空的。

    祝您生活愉快! 


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2013年11月20日 3:26
    版主

全部回复

  • Jason,您好,

    >>这个样子的函数可以删除指定的控件,可是我每次点击按钮之前不想查现在这个单元格里都有啥控件,然后删除在显示我要的新的控件,我觉得很麻烦。

    据我所知,我也查了相关的资料,这个是不可行的。我们必须找到指定的对象才能删除,Grid木有提供这样的API来直接删除这样的内容。但是Microsoft一直在收集用户的反馈,技术或者产品的。您可以将您的这个建议通过下面的链接提供给Microsoft。当然我也会通过内部途径反馈这个需求。

    http://visualstudio.uservoice.com/forums/121579-visual-studio

    忘了说了,有一种方式可以清空这个Grid的控件内容,可以不需要事先获得这个对象的名称,GridChildren有一个Clear方法,可以清空这个Grid内部所有的控件,但是你用来添加控件的按钮不可以置于这个Grid内部,否则会被清空的。

    祝您生活愉快! 


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2013年11月20日 3:26
    版主
  • 谢谢大家的解答。我先在用了个曲线救国的方式,就是给那个单元格添加一个panel,每次都直接调用panel的清除函数就可以了。这样子也可以用。

    谢谢大家了。


    Jason

    2013年12月3日 2:27
  • 还有一个方法可以根据单元格的索引来清除单元格中的内容

    grid.Children.RemoveAt(int index)

    这个方法可以不需要知道当前的单元格中的 UIElement,但是得知道这个单元格的索引


    Janfrayda Yu

    2013年12月14日 5:40