C# Windows 通用列表视图绑定按钮到图标失败

Posted

技术标签:

【中文标题】C# Windows 通用列表视图绑定按钮到图标失败【英文标题】:C# Windows universal list view binding buttons to icons fails 【发布时间】:2017-12-20 22:29:47 【问题描述】:

我有以下 uwp 列表视图

    <ListView x:Name="pane_listview"
          SelectionMode="Single"
         ItemsSource="x:Bind paneDataItems">

              <ListView.ItemTemplate>
                  <DataTemplate x:DataType="data:PaneItems">
                       <Grid>
                           ..column definations

                        <Button FontFamily="Segoe MDL2 Assets"  //icon display fails
                                    Content="x:Bind icon"
                                   HorizontalAlignment="Left"
                                    />
                                   ...other controls here

                            </Grid>
                        </DataTemplate>
                    </ListView.ItemTemplate>

                </ListView>

这是 ItemDataSource

private List<PaneItems> paneDataItems;
 paneDataItems = PaneManager.GetPaneItems(); //called in the app initialization class

现在是 getall 项目

public class PaneManager

    public static List<PaneItems> GetPaneItems()
    
        var items = new List<PaneItems>();
        items.Add(new PaneItems("&#xE700;", "Dashboard", "can_view_dashboard"));
        return items;
    


public class PaneItems

    public string icon  get; set; 
    public string item  get; set; 
    public string permission  get; set; 

    public PaneItems(string iconval, string itemname, string permissionname)
    
        icon = iconval;
        item = itemname;
        permission = permissionname;

    


问题出在 Listview 中的 Button 它不显示图标,但是当我将 listview 中的图标手动设置为时

<Button FontFamily="Segoe MDL2 Assets" Content="&#xE700;" /> //this works

如您所见,PaneManager 中设置的图标与按钮中手动设置的图标相同;

可能出了什么问题?

【问题讨论】:

【参考方案1】:

尝试将&amp;#xE700; 替换为\uE700

所以基本上用\u替换&amp;#x,并在最后删除;,只要你想在C#代码隐藏中引用图标字符串。

【讨论】:

以上是关于C# Windows 通用列表视图绑定按钮到图标失败的主要内容,如果未能解决你的问题,请参考以下文章

C#中listview控件是啥东东??咋用的

将对象列表数据绑定到 WinForms DataGridView,但不显示某些公共属性

C#:WPF MVVM 中的按钮绑定

如何绑定列表视图

C# WPF - Listview 绑定不起作用

如何在 WPF / MVVM 中对绑定到相同实例的两个列表视图进行不同选择