样式没有从代码隐藏中应用

时间:2018-02-14 16:32:12

标签: c# wpf xaml

我正在尝试通过代码隐藏以编程方式分配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}}

感谢。

0 个答案:

没有答案
相关问题