C# WPF XAML GridViewColumn 中的图标问题

标签 c# wpf xaml listview icons

我创建了一个 ListView,其中包含 GridView 组件。现在尝试用图标 (PNG) 填充其中一个单元格,如下面的代码示例 (save_icon.png) 所示:

<ListView.View>
    <GridView>
        <GridViewColumn Header="Date" Width="Auto" DisplayMemberBinding="{Binding Date}" />
        <GridViewColumn Header="Time" Width="Auto" DisplayMemberBinding="{Binding Time}" />
        <GridViewColumn Header="FriendlyName" Width="Auto" DisplayMemberBinding="{Binding FriendlyName}" />
        <GridViewColumn Width="Auto">
            <Image Source="save_icon.png" />
        </GridViewColumn>
    </GridView>
</ListView.View>

Visual Studio 给了我一个错误,我将图标放入列中(错误:“错误 35:文件 save_icon.png 不是项目的一部分,或其“构建操作”属性未设置为'资源'。”)我将图标作为资源添加到项目中,当我启动应用程序时,一切正常(图标出现在正确的位置)。但是当我更改 XAML 代码时,WPF 设计器窗口无法重新加载,并且我无法看到设计器中的更改。

有人可以解释这个错误还是我做错了什么?

感谢您提前提供的每一个提示!

最佳答案

我找到了解决问题的方法。只需在 GridViewColumn 内使用 Cell- 和 DataTemplate 即可。下面的 XAML-Code-Snippet 正是我所需要的,并且 wpf 设计器重新加载没有任何问题:

<ListView.View>
    <GridView>
        <GridViewColumn Header="Date" Width="Auto" DisplayMemberBinding="{Binding Date}" />
        <GridViewColumn Header="Time" Width="Auto" DisplayMemberBinding="{Binding Time}" />
        <GridViewColumn Header="FriendlyName" Width="Auto" DisplayMemberBinding="{Binding FriendlyName}" />
        <GridViewColumn Width="Auto">
            <GridViewColumn.CellTemplate>
              <DataTemplate>
                     <Image Source="Resources\saveicon.png"></Image>
              </DataTemplate>
            </GridViewColumn.CellTemplate>
        </GridViewColumn>
    </GridView>
</ListView.View>

关于C# WPF XAML GridViewColumn 中的图标问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500009/

相关文章:

c# - 在 C# 中用同一位置的图像替换文本

c# - 变量的内存地址

WPF 按钮在一个站点上像素化

c# - 如何为 ChildViewModel 提供来自 MainViewModel 的数据

c# - 如何使用 log4net 在日志文件中添加一个空行?

c# - 通过堆栈的异步/等待行为

wpf - Expression Blend、一个 ItemTemplate 和一个隐式样式

c# - 在工作中学习 WPF

c# - WPF 绑定(bind)找不到引用的绑定(bind)源

c# - 使用 C# 和 XAML 在 Metro 应用程序中自定义底部应用程序栏