2012-07-05 45 views
0

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

为了测试它不是我的自定义控件,我添加了一个包含自动完成框的列。在框中输入内容并跳到下一列时,该框将被清除。

调试时,我可以看到控件加载的事件在我们失去焦点后被调用,这确认在移动到下一个字段时它正被重新加载/重新创建!?是不是因为某种原因而没有对网格进行更改?

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

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

回答

1

这是完全正常的 - 当细胞被渲染的CellTemplate被使用,而当行滚出视如果你的虚拟化开启他们被摧毁。

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

+0

啊当然!谢谢,自从我做了任何XAML以来已经有一段时间了。 – 2012-07-05 12:19:32

相关问题