Я пытаюсь программно добавить события и элементы в DataTemplate в приложении Silverlight 3.0. У меня есть пользовательский элемент управления со свойством зависимостей, в котором я хотел бы взять установленный шаблон, настроить его, а затем установить измененную версию для внутреннего элемента управления.
Идея состоит в том, чтобы взять входящий в комплект DataTemplate, прочитать его XAML, настроить его, а затем использовать XamlReader для создания модифицированного DataTemplate, который затем можно установить для внутреннего элемента управления. Проблема с этим подходом заключается в том, что я не знаю, как получить XAML из исходного шаблона (если это вообще возможно). Например:
protected virtual void OnItemTemplateChanged(DependencyPropertyChangedEventArgs e)
{
// Get the original Xaml from the set template
//string originalXaml = ???
// Modify the template
string newXaml = originalXaml.Replace("foo", "bar"); // for example
// Create a new template from the modified XAML
DataTemplate newTemplate = (DataTemplate)XamlReader.Load(newXaml);
// Update the inner template
this._childDropdown.ItemTemplate = newTemplate;
}
Кто-нибудь знает: 1) есть ли способ прочитать исходный XAML, или 2) другой подход для программного изменения DataTemplate.
Спасибо