カスタム コントロールを含む Silverlight コントロールに DataGrid があります。これらのカスタム コントロールはグリッドの外でも使用され、完全に機能します。ただし、グリッド内で使用すると、フォーカスが失われたとき (つまり、別のセルに移動したとき) にリセットされるように見えます。
それが私のカスタム コントロールではないことをテストするために、オートコンプリート ボックスを含む列を追加しました。ボックスに入力し、タブで次の列に移動すると、ボックスがクリアされます。
デバッグ時に、フォーカスを失った後にコントロールがロードされたイベントが呼び出されていることがわかります。これは、次のフィールドに移動するときにリロード/再作成されていることを確認します!? 何らかの理由で変更をグリッドにコミットしていないだけですか?
XAMLの例(非常に基本的で、ここで奇妙なことは何もありません)
<sdk:DataGridTemplateColumn Header="Description">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<sdk:AutoCompleteBox Name="Description" Width="100" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>