繁体   English   中英

WPF MVVM:绑定到对象的属性

[英]WPF MVVM: Binding to property of object

我尝试使用绑定在我的 ComboBox 中显示值。 但我不知道为什么它不起作用:

<ComboBox Width="476" Height="30" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,10,0,0" ItemsSource="{Binding Maps.Name}"></ComboBox>

这是我的 C#:

public class Map
{
    public string Name { get; set; }
    public string ImagePath { get; set; }
}

和主要:

class MainWindowViewModel : BindableBase
{
    public ObservableCollection<Map> Maps { get; set; }

    public MainWindowViewModel()
    {
        Maps = mainWindowModel.LoadMapFiles(); //deserializes maps, i checked it, LoadMapFiles() works
    }
}

如果我想让它显示每个 Map.Name,我应该在 ComboBox ItemSource 中写什么?

表达式Maps.Name不是有效的绑定路径,因为Name不是Maps ObservableCollection<Map>的属性。

ItemsSource属性绑定到集合属性,并通过DisplayMemberPath设置显示属性:

<ComboBox ItemsSource="{Binding Maps}" DisplayMemberPath="Name" ... />

还要确保Maps属性设置器触发更改通知,或将属性设为只读:

public ObservableCollection<Map> Maps { get; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM