C# 显示数据网格中绑定到对象列表的资源中的图像

C# 显示数据网格中绑定到对象列表的资源中的图像,c#,.net,wpf,datagrid,C#,.net,Wpf,Datagrid,我有一个带有几列的数据网格。其中一列是templateColumn,我想从我的资源中显示一个图像。以下是xaml: <DataGrid AutoGenerateColumns="False" Height="415" HorizontalAlignment="Left" Margin="0,34,0,0" Name="dgLocalPlugins" VerticalAlignment="Top" Width="806" SelectionMode="Single" AlternatingR

我有一个带有几列的数据网格。其中一列是templateColumn,我想从我的资源中显示一个图像。以下是xaml:

<DataGrid AutoGenerateColumns="False" Height="415" HorizontalAlignment="Left" Margin="0,34,0,0" Name="dgLocalPlugins" VerticalAlignment="Top" Width="806" SelectionMode="Single" AlternatingRowBackground="#CDEBEBEB">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn Header="Enabled" Binding="{Binding Path=Enabled}" />
        <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" MinWidth="200" />
        <DataGridTextColumn Header="Status" Binding="{Binding Path=Status}" />
        <DataGridTextColumn Header="Version" Binding="{Binding Path=Version}" />
        <DataGridHyperlinkColumn Header="Wiki" Binding="{Binding Path=WikiUrl}" MaxWidth="100" />
        <DataGridTextColumn Header="Author" Binding="{Binding Path=Author}" />
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Image Source="{Binding Path=Upgrade}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

当我调试并在设置desc.Upgrade后放置断点时,我可以看到有一些东西,但图像没有显示在数据网格中。我需要做什么才能显示图像?

确保您的
PluginDescription
类实现了
inotifPropertyChanged
,以便在设置属性时绑定将更新UI。

如果您已经为的
升级
属性正确实现了
inotifPropertyChanged
PluginDescription
class,我猜
Path
本身没有得到解决

将第一个
PluginDescription
的路径放入数据网格外的某个映像中

i、 e



并检查此单个图像是否正确加载。如果没有,那么我确定路径没有得到解决。

我不确定这就是问题所在。所有其他列都正确显示。不,我将该实现添加到PluginDescription类中,但它仍然不显示图像。
foreach (string path in osapdFiles)
{
    if (!string.IsNullOrEmpty(path))
    {
        PluginDescription desc = PluginHelper.Deserialize(path);
        desc.Upgrade = Properties.Resources.upgrade;
        desc.Status = "Stopped";
        desc.Enabled = false;
        pluginList.Add(desc);
    }
}

dgLocalPlugins.ItemsSource = pluginList;
  <DataGrid Name="dgLocalPlugins" ... />
  <Image Source="{Binding ElementName=dgLocalPlugins, Path=ItemsSource[0].Upgrade}"/>