我有一个包含GridCell
样式模板的数据网格。我为此编写了此样式模板:
<Style x:Key="SfDataGridGridCell" TargetType="syncfusion:GridCell">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="FontFamily" Value="IRANSansMobile(FaNum) Light"/>
<Setter Property="FontSize" Value="11.5"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="syncfusion:GridCell">
<Border BorderBrush="Transparent">
<Grid>
<TextBlock TextWrapping="Wrap" Text="{Binding ???}"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我想将此样式应用于所有DataGrid
的单元格。如何绑定从xaml或代码标记的值?
答案 0 :(得分:1)
也许您需要的是ContentPresenter。
如果是这样,则可以使用ContentPresenter代替TextBlock。
<Grid>
<!--<TextBlock TextWrapping="Wrap" Text="{Binding ???}"/>-->
<ContentPresenter Content="{TemplateBinding Content}"/>
</Grid>
有关如何在ContentPresenter中将样式应用于TextBlock的信息,请参考此处。
Applying style resources to ContentPresenter text
答案 1 :(得分:1)
恐怕您不能仅替换绑定的路径,而要重用模板的其余部分。 XAML不支持这样做。
您可以做的是使用XamlReader.Parse方法以编程方式创建几种样式,每列一种。然后,您可以简单地替换传递给该方法的字符串中的绑定路径。