当焦点丢失时,重新加载DataGrid中的Silverlight控件

时间:2012-07-05 09:25:55

标签: silverlight datagrid

我在Silverlight控件中有一个包含自定义控件的DataGrid。这些自定义控件也在网格外部使用,并且工作正常。然而,当在网格中使用时,它们似乎在焦点丢失时自行重置(即我们移动到另一个单元格)。

为了测试它不是我的自定义控件,我添加了一个包含AutoComplete框的列。当在框中键入并标签到下一列时,该框将被清除。

调试时我可以看到控件加载事件在我们从中失去焦点后被调用,这确认了它在移动到下一个字段时被重新加载/重新创建!是不是因为某些原因而没有将更改提交给网格?

e.g。 XAML(非常基本,这里没什么奇怪的)

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

1 个答案:

答案 0 :(得分:1)

这是完全正常的 - 在渲染单元格时使用CellTemplate,如果打开虚拟化,当行滚出视图时会被破坏。

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