将视图框插入数据网格单元格

本文关键字:数据网 网格 单元格 数据 插入 视图 | 更新日期: 2023-09-27 18:26:05

我想把一些东西放进ViewBox中,然后这个ViewBox会被添加到DataGridTemplateColumn的单元格模板中。所有这些都是在代码隐藏(C#)中完成的。

我已经用标签完成了,但我想使用ViewBox。使用标签的代码是:

 DataGridTemplateColumn dgtc5 = new DataGridTemplateColumn();
            dgtc5.Width = 142;
            dgtc5.Header = "Page Life Expectancy";
            DataTemplate dtemp5 = new DataTemplate();
            FrameworkElementFactory fef5 = new FrameworkElementFactory(typeof(Label));
Binding b5 = new Binding("PleChart");           
fef5.SetBinding(Label.ContentProperty, b5);
dtemp5.VisualTree = fef5;
dgtc5.CellTemplate = dtemp5;

将视图框插入数据网格单元格

请在此处查看我的答案绑定数据网格';s CellTemplate内容转换为在模板化CustomControl上定义的Element或DependencyProperty。

只需更改像这样的数据模板

<DataTemplate x:Key="template2">
    <Viewbox>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="Funky: "/>
            <TextBlock Text="{Binding Path=Test, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:CustomControl1}}}"/>
        </StackPanel>
    </Viewbox>
</DataTemplate>

使包含的文本增大/缩小以适应视图框。

或者简单地这样做:

<DataGrid.Columns>
    <DataGridTemplateColumn Header="Test">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Viewbox>
                    <TextBlock Text="{Binding Name}"/>
                </Viewbox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>