用纯c#代码编写自定义DataTemplate的问题

本文关键字:DataTemplate 问题 自定义 代码 用纯 | 更新日期: 2023-09-27 17:49:18

我有这段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 Cell的DataTemplate,在纯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();,在先前添加的从mysql数据集中提取的DataContext上。数据集与ListView绑定时没有错误,但是网格中的所有行都是白色的,就像它们没有样式或其他东西。

错在哪里?

用纯c#代码编写自定义DataTemplate的问题

我认为这是一个绑定问题。您需要设置绑定的Source属性。

请参见在MSDN上创建代码绑定