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

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


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