将WPF组合框ItemsSource绑定到字符串数组时出错

Car*_*ier 1 c# wpf binding combobox itemssource

我无法将组合框的ItemsSource设置为数组.我已经尝试将DataContext设置为找到Array的类,然后在XAML中设置绑定

 class Car
{
    public string[] makes;
}
Run Code Online (Sandbox Code Playgroud)

...

public MainWindow()
{
    Car _Car = new Car();
    _Car.makes = new string[]
        {
            "Toyota",
            "Mitsubishi",
            "Audi",
            "BMW"           
        };

    this.DataContext = _Car;
}
Run Code Online (Sandbox Code Playgroud)

然后在XAML中

<ComboBox Name="cars" Grid.Column="0" 
              Grid.Row="0" Margin="5" 
              ItemsSource="{Binding Path=makes}"/>
Run Code Online (Sandbox Code Playgroud)

它似乎没有做任何事情.我的汽车组合框不会有任何物品.

我也试过明确分配

cars.ItemsSource= new string[]{
                "Toyota",
                "Mitsubishi",
                "Audi",
                "BMW"           
            };
Run Code Online (Sandbox Code Playgroud)

但后来我收到此错误消息:

调用的目标抛出了异常.

我错过了什么吗?

Omr*_*ian 6

WPF绑定不支持字段.使它成为具有吸气剂和二传手的属性

class Car
{
    public string[] makes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

无论如何,您不必明确说明Path,所以这应该足够了

<ComboBox Name="cars" Grid.Column="0" 
          Grid.Row="0" Margin="5" 
          ItemsSource="{Binding makes}"/>
Run Code Online (Sandbox Code Playgroud)