Xamarin.Forms Picker ItemDisplayBinding 不适用于静态列表

Let*_*ode 6 c# xaml xamarin.android xamarin xamarin.forms

我正在尝试使用不同的项目源的选择器,当我尝试使用静态列表时,我不断收到 NullPointerException。

沙姆尔

<Picker ItemsSource="{x:Static Member=stat:Stat.ItemModList}"
                    ItemDisplayBinding="{Binding Name}" />
Run Code Online (Sandbox Code Playgroud)

选择器是 xaml 中的唯一元素。我没有更改文件后面的代码。stat 是静态列表文件的命名空间。

仅当<Picker ItemsSource="{x:Static Member=stat:Stat.ItemModList}" />写入时,选择器才起作用,并且选择器项目全部显示为ItemMod类'ToString()

当我添加它时,ItemDisplayBinding="{Binding Name}它不起作用。当我单击选择器时,出现空指针异常。

其他文件:

Stat.cs - 静态列表

public static class Stat
    {
        public static List<ItemMod> ItemModList = new List<ItemMod>()
        {
            new ItemMod {Id = -1, Name = "Default"},
            new ItemMod {Id = 1, Name = "Item 1"},
            new ItemMod {Id = 2, Name = "Item 2"},
            new ItemMod {Id = 3, Name = "Item 3"},
            new ItemMod {Id = 4, Name = "Item 4"}
        };
    }
Run Code Online (Sandbox Code Playgroud)

ItemMod.cs

public class ItemMod
    {
        public int Id;
        public string Name;
    }
Run Code Online (Sandbox Code Playgroud)

Let*_*ode 5

ItemDisplayBinding 不起作用,因为 BindingPropertyName被声明为 ItemMod 类中的公共字段而不是公共属性。
所以在 ItemMod.cs 中应该是public string Name {get;set;}