Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Динамиечское создание DataTemplate / 1 сообщений из 1, страница 1 из 1
01.05.2010, 02:06
    #36608340
JohnSparrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамиечское создание DataTemplate
Доброго времени суток

Есть ListView, View для которого нужно генерировать динамически (меняются источники данных). Делаю примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
    // создадим новое представление
    GridView v = new GridView();
    foreach (ExListColumn c in ExListViewFormat.Columns)
    {
        // создадим привязку данных для содержимого столбца
        Binding binding = new Binding(c.DataHeader);
        binding.Converter = c.Converter;

        // создадим шаблон данных
        FrameworkElementFactory childFactory = new FrameworkElementFactory(typeof(TextBlock));
        childFactory.SetBinding(TextBlock.TextProperty, binding);
        
        // ВОТ ЗДЕСЬ ПРОБЛЕМА
        childFactory.SetValue(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Right);
        childFactory.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Right);
        // --------------
        
        childFactory.SetValue(TextBlock.BackgroundProperty, Brushes.SkyBlue);

        FrameworkElementFactory factory = new FrameworkElementFactory(typeof(Grid));
        factory.AppendChild(childFactory);
        
        // установим шаблон столбца. добавим столбец в представление данных
        DataTemplate template = new DataTemplate();
        template.VisualTree = factory;
        GridViewColumn col = new GridViewColumn();
        col.Header = c.Header;
        col.CellTemplate = template;
        v.Columns.Add(col);
    }
    Table.View = v;
В итоге все работает, кроме выравнивания TextBlock'ов в столбцах (см. комментарий в центральной части листинга). У меня TextBlock'и в столбце Grid'a выровнены по левому краю.

Аналогичная тема: http://195.128.121.254/forum/actualthread.aspx?bid=35&tid=694706&pg=1 , но там решения я не нашел. Установка MinWidth - не решение, а как работать с ArrangeOverride и MeasureOverride, не совсем ясно.

Если кто в курсе, подскажите пожалуйста более простое решение. Оно ведь явно имеется, разве нет?
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Динамиечское создание DataTemplate / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]