Проблема с пользовательской таблицей данных, написанной на чистом коде C #

#c# #.net #wpf #binding #wpfdatagrid

#c# #.net #wpf #привязка #wpfdatagrid

Вопрос:

У меня есть этот фрагмент кода XAML:

  <DataTemplate x:Key="detailsCellTemplate">
        <StackPanel>

            <TextBlock Padding="3, 5, 3, 2" HorizontalAlignment="Left" FontWeight="DemiBold">
                <TextBlock.Text>
                    <Binding Path="client_title" />
                </TextBlock.Text>
            </TextBlock>

            <TextBlock Padding="3, 0, 3, 5" HorizontalAlignment="Left">
                <TextBlock.Text>
                    <Binding Path="client_subtitle" />
                </TextBlock.Text>
            </TextBlock>

        </StackPanel>
    </DataTemplate>
  

которая представляет табличку данных для ячейки GridColumn, переведенную в чистый код C # (более или менее) следующим образом:

 FrameworkElementFactory stackPanelFactory = new FrameworkElementFactory(typeof(StackPanel));
        stackPanelFactory.SetValue(StackPanel.OrientationProperty, Orientation.Vertical);

        FrameworkElementFactory title = new FrameworkElementFactory(typeof(TextBlock));
        title.SetBinding(TextBlock.TextProperty, new Binding("client_title"));
        title.SetValue(TextBlock.ForegroundProperty, Brushes.Black);
        title.SetValue(TextBlock.VisibilityProperty, Visibility.Visible);
        stackPanelFactory.AppendChild(title);

        FrameworkElementFactory subTitle = new FrameworkElementFactory(typeof(TextBlock));
        title.SetBinding(TextBlock.TextProperty, new Binding("client_subtitle"));
        stackPanelFactory.AppendChild(subTitle);

        VisualTree = stackPanelFactory;
  

и назначенной элементу управления ListView с помощью этой инструкции: gridColumn.CellTemplate = new TitleCellTemplate(); в ранее добавленном DataContext, извлеченном из набора данных mysql.
Набор данных без ошибок привязывается к ListView, но все строки в таблице белые, как будто у них нет стиля или чего-то еще.

Где может быть ошибка?

Комментарии:

1. Вы убедились, что это не проблема привязки?

Ответ №1:

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

Смотрите раздел Создание привязки в code на MSDN.