[英]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.