首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >银灯ItemContainerGenerator状态?

银灯ItemContainerGenerator状态?
EN

Stack Overflow用户
提问于 2009-07-30 08:57:15
回答 1查看 1.3K关注 0票数 0

嘿,伙计们,我在Silverlight 3的ItemContainerGenerator上遇到了问题。

在派生的自定义ListBox中,我添加了以下处理程序:

代码语言:javascript
复制
ItemContainerGenerator.ItemsChanged += new ItemsChangedEventHandler(ItemContainerGenerator_ItemsChanged);

每次物品变了,我都会接到回电。到目前为止还不错。

现在,在ItemContainerGenerator_ItemsChanged中,我想做不同的事情,取决于这样的操作:

代码语言:javascript
复制
            switch (e.Action)
        {
            case NotifyCollectionChangedAction.Add:
                Debug.WriteLine("items added");
                break;
            case NotifyCollectionChangedAction.Remove:
                Debug.WriteLine("items removed");
                break;
            case NotifyCollectionChangedAction.Replace:
                Debug.WriteLine("items removed");
                break;
            case NotifyCollectionChangedAction.Reset:
                Debug.WriteLine("items reset, itemscount:" + this.Items.Count);

                CalcMaxColumnWidths();

                break;
            default:
                break;
        }

到现在为止一切都很顺利。在CalcMaxColumnWidths()中,当操作被重置时,我调用它,我执行以下操作:

代码语言:javascript
复制
foreach (ListBoxItem item in ItemsControlExtensions.GetContainers(this))
        { //some code here }

这里有个问题:

我试图使用GetContainers()方法获得的容器返回null,尽管Items.Count是正确的值(60)。

在WPF中有一个ItemContainerGenerator.Status,所以我们可以等到设置完成后再对容器进行迭代。

我怎样才能在Silverlight中解决这个问题?(没有计时器!)

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-04 09:19:28

我没有执行ListBox本身的所有魔术,而是创建了一个自定义面板,并将其用作ItemPanel。在小组的度量和安排周期中,我现在计算列宽。在这些循环中,已经创建了所有容器。问题解决了。

但是,ItemContainerGenerator中缺少这种状态还是很糟糕的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1205337

复制
相关文章

相似问题

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