我正在尝试通过代码隐藏以编程方式分配Style但它似乎没有工作......我没有看到MyIcon出现在网格列中。 调试时,我看到sBase的值为null。 我在这里想念的是什么?
private void gridResult_AutoGeneratingColumn(object sender, DevExpress.Xpf.Grid.AutoGeneratingColumnEventArgs e)
{
DisplayInfo displayInfo = e.Column.Tag as DisplayInfo;
if (e.Column.ActualColumnChooserHeaderCaption.ToString() == "MyColumn")
{
e.Column.CellTemplate = GetImageDataTemplate();
}
}
private static DataTemplate GetImageDataTemplate()
{
DataTemplate template = new DataTemplate();
FrameworkElementFactory factory = new FrameworkElementFactory(typeof(System.Windows.Controls.Image));
Style sBase = Application.Current.Resources["ImageStatusStyle"] as Style;
Style sNew = new Style(typeof(System.Windows.Controls.Image), sBase);
factory.SetValue(System.Windows.Controls.Image.StyleProperty, sNew);
template.VisualTree = factory;
return template;
}
MyWindow.xaml.cs:
<DataTemplate>
<DockPanel>
<Image Width="16" Height="16" HorizontalAlignment="Center" Stretch="None" DockPanel.Dock="Left" Style="{StaticResource ImageStatusStyle}" />
</DockPanel>
</DataTemplate>
请注意,如果我在xaml代码中应用相同的样式,它的工作正常,我可以看到MyIcon出现在网格列中....例如。
{{1}}
感谢。