0

我在包含自定义控件的 Silverlight 控件中有一个 DataGrid。这些自定义控件也可以在网格之外使用并且可以完美运行。然而,当在网格中使用时,它们似乎会在失去焦点时自行重置(即我们移动到另一个单元格)。

为了测试它不是我的自定义控件,我添加了一个包含自动完成框的列。当在框中键入并切换到下一列时,框会被清除。

调试时,我可以看到在我们失去焦点后调用了控件加载事件,这证实了在移动到下一个字段时它正在重新加载/重新创建!?是否出于某种原因根本没有将更改提交到网格?

例如 XAML(非常基本,这里没什么奇怪的)

        <sdk:DataGridTemplateColumn Header="Description">
             <sdk:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                            <sdk:AutoCompleteBox Name="Description" Width="100" />
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
4

1 回答 1

1

这是完全正常的 - CellTemplate 在渲染单元格时使用,如果您打开了虚拟化,当将行滚动到视图之外时它们会被破坏。

当网格单元进入编辑模式时使用 CellEditingTemplate,此时您的编辑控件将被创建 - IOW 编辑控件是按需创建的。仅关注单元格不足以使单元格自行进入编辑模式。

于 2012-07-05T10:53:52.090 回答