我有这个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]只是示例。
我知道这肯定是小事......
问候