首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF: ItemContainerGenerator.Status =未启动

WPF: ItemContainerGenerator.Status =未启动
EN

Stack Overflow用户
提问于 2017-06-06 21:19:31
回答 0查看 620关注 0票数 0

我有一个datagrid,其中每一列都有一个组合框作为标题。每个combobox都将其源绑定到一个可观察到的字符串集合。这一切都是通过后台代码实现的,因为数据网格的列数在设计时是未知的。

当用户在每个组合框中选择一个项目时,应该在选择更改后禁用该项目。所以我试着像这样做一个循环:

代码语言:javascript
复制
private void Test_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (vm.myArray == null)
        { vm.myArray = new string[myGrid.Columns.Count]; }
        ComboBox cb = sender as ComboBox;
        DataGridColumnHeader parent = cb.Parent as DataGridColumnHeader;
        int index = parent.Column.DisplayIndex;
        string value = cb.SelectedItem as string;
        vm.mYArray[index] = value;
        foreach(DataGridColumn c in griglia.Columns)
        {
            foreach(string s in vm.myArray)
            {
                if(s != null && s != string.Empty)
                {
                    ComboBox dg = c.Header as ComboBox;
                    for (int i = 0; i < dg.Items.Count; i++)
                    {
                        ComboBoxItem it = (ComboBoxItem)dg.ItemContainerGenerator.ContainerFromIndex(i); 
                        if ((string)it.Content == s)
                            it.IsEnabled = false;
                        else
                            it.IsEnabled = true;
                    }
                }
            }
        }
    }

问题是,当列上的循环到达第二次迭代时,我的代码会引发一个异常。在深入研究我的局部变量之后,我注意到除了第一列中的组合框之外,ItemContainerGenerator.Status在任何地方都是NotStarted。你能帮我解决这个问题吗?

EN

回答

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

https://stackoverflow.com/questions/44391147

复制
相关文章

相似问题

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