Public Class CustomEditTemplateSelector
Inherits DataTemplateSelector
Public Overrides Function SelectTemplate(item As Object, container As DependencyObject) _
As DataTemplate
Dim dataTemplate As DataTemplate = Nothing
Dim editor = TemplateEditor.GetEditor(container)
'タグ プロパティの設定により編集テンプレートがすでに
'返されている場合。エディターが次のことを実行しないように同じテンプレートを返す必要がある。
'編集モードの終了。
If TypeOf editor.Tag Is DataTemplate Then
Return TryCast(editor.Tag, DataTemplate)
End If
If item IsNot Nothing Then
If CInt(item) > 10000 Then
dataTemplate = TryCast(editor.FindResource("editTemplateRed"), DataTemplate)
Else
dataTemplate = TryCast(editor.FindResource("editTemplateGreen"), DataTemplate)
End If
End If
If dataTemplate IsNot Nothing Then
editor.Tag = dataTemplate
Return dataTemplate
End If
Return MyBase.SelectTemplate(item, container)
End Function
End Class