我在包含自定义控件的 Silverlight 控件中有一个 DataGrid。这些自定义控件也可以在网格之外使用并且可以完美运行。然而,当在网格中使用时,它们似乎会在失去焦点时自行重置(即我们移动到另一个单元格)。
为了测试它不是我的自定义控件,我添加了一个包含自动完成框的列。当在框中键入并切换到下一列时,框会被清除。
调试时,我可以看到在我们失去焦点后调用了控件加载事件,这证实了在移动到下一个字段时它正在重新加载/重新创建!?是否出于某种原因根本没有将更改提交到网格?
例如 XAML(非常基本,这里没什么奇怪的)
<sdk:DataGridTemplateColumn Header="Description">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<sdk:AutoCompleteBox Name="Description" Width="100" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>