如何在CodeBehind的DataTemplate中设置textblock中的文本并设置此模板?

时间:2017-12-25 13:16:35

标签: c# xaml binding devexpress devexpress-wpf

我有这个DataTemplate:

<UserControl.Resources>
    <ResourceDictionary>
     <DataTemplate x:Key="SomeCellStyle">
            <Grid Name="GridInTemplate">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="2*" />
                </Grid.RowDefinitions>

                <Grid Grid.Row="0"
                      Background="#808080">
                    <TextBlock x:Name="ValueText"
                               Foreground="White"
                               HorizontalAlignment="Center"
                               VerticalAlignment="Center"/>
                </Grid>
            </Grid>
      </DataTemplate>
    </ResourceDictionary>
</UserControl.Resources>

我想将此单元格DataTemplate动态设置为列。

    var dataTemplate = GetCellDataTemplate();
    var dataTemplateObject = dataTemplate.LoadContent();

    var textBlock = GetVisualChildren<TextBlock>(dataTemplateObject).FindName("ValueText") as TextBlock;
    textBlock.Text = "test text";

    gridControl.Columns[0].CellTemplate = dataTemplate;

和GetCellDataTemplateFunction ::

    private DataTemplate GetCellDataTemplate()
{
    var dataTemplate = (GetView() as MyView)?.Resources["SomeCellStyle"] as DataTemplate;
    return dataTemplate;
}

模板正在更改,但文本未显示。当我在xaml模板中设置静态文本时,它可以工作。

我想在代码behing中这样做因为我想动态添加列并在此TextBlock中设置不同的文本。所以“gridControl.Columns [0] - 其中[0]只是示例。

我知道这肯定是小事......

问候

0 个答案:

没有答案