Создание Silverlight DataTemplate в коде

В статически типизированном языке каждое имя переменной привязано как 1. к типу (во время компиляции с помощью объявления данных). 2. к объекту. Связывание с объектом необязательно - если имя не привязано к объекту, имя считается нулевым. На динамически типизированном языке каждое имя переменной (если оно не равно null) связано только с объектом.

Имена привязаны к объектам во время выполнения с помощью операторов присваивания, и можно связать имя к объектам разных типов во время выполнения программы.

28
задан Nick Randell 16 September 2008 в 14:46
поделиться

3 ответа

Хотя Вы не можете программно создать его, можно загрузиться, это от XAML представляет в виде строки в коде как это:

    public static DataTemplate Create(Type type)
    {
        return (DataTemplate) XamlReader.Load(
            @"<DataTemplate
                xmlns=""http://schemas.microsoft.com/client/2007"">
                <" + type.Name + @"/>
              </DataTemplate>"
          );
    }

отрывок выше создает шаблон данных, содержащий единственное управление, которое может быть пользовательским элементом управления с содержанием, в котором Вы нуждаетесь.

39
ответ дан 14 October 2019 в 10:46
поделиться

У меня было несколько проблем с этим кодом, получая элемент не foung исключения. Только для ссылки, случалось так, что мне было нужно мое пространство имен, включенное в DataTemplate...

private DataTemplate Create(Type type)
        {
            string xaml = @"<DataTemplate 
                xmlns=""http://schemas.microsoft.com/client/2007""
                xmlns:controls=""clr-namespace:" + type.Namespace + @";assembly=" + type.Namespace + @""">
                <controls:" + type.Name + @"/></DataTemplate>";
            return (DataTemplate)XamlReader.Load(xaml);
        }
11
ответ дан McGarnagle 14 October 2019 в 10:46
поделиться

цитата от MSDN:

использование XAML, которое определяет содержание для создания шаблона данных, не представлено как устанавливаемое свойство. Это - специальное поведение, встроенное в обработку XAML элемента объекта DataTemplate.

2
ответ дан McGarnagle 14 October 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: