WPF:绑定到 ObservableCollection 中 class 的 属性
WPF: Binding to property of a class in a ObservableCollection
我有一个 class 叫 Robot
:
public class Robot
{
public string name { get; private set; }
public Robot(string robotName)
{
name = robotName;
}
}
我在我的 ModelView 中创建了这个 class:
的 ObservableCollection
public ObservableCollection<Robot> Robots { get; private set; } = new ObservableCollection<Robot>();
我现在需要将这个 ObservableCollection 绑定到我的 ListView,但我需要绑定到 ListView 的 属性 name
,而不是转换为字符串的 class。
<ListView ItemsSource="{Binding Robots}" />
我该怎么做?
将 DisplayMemberPath
属性 设置为项目的名称 属性:
<ListView ItemsSource="{Binding Robots}" DisplayMemberPath="name" />
机器人 属性 应命名为 Name
- 使用 Pascal 大小写以遵守广泛接受的命名约定:
public class Robot
{
public string Name { get; }
public Robot(string name)
{
Name = name;
}
}
那么 XAML 就是
<ListView ItemsSource="{Binding Robots}" DisplayMemberPath="Name" />
我有一个 class 叫 Robot
:
public class Robot
{
public string name { get; private set; }
public Robot(string robotName)
{
name = robotName;
}
}
我在我的 ModelView 中创建了这个 class:
的 ObservableCollectionpublic ObservableCollection<Robot> Robots { get; private set; } = new ObservableCollection<Robot>();
我现在需要将这个 ObservableCollection 绑定到我的 ListView,但我需要绑定到 ListView 的 属性 name
,而不是转换为字符串的 class。
<ListView ItemsSource="{Binding Robots}" />
我该怎么做?
将 DisplayMemberPath
属性 设置为项目的名称 属性:
<ListView ItemsSource="{Binding Robots}" DisplayMemberPath="name" />
机器人 属性 应命名为 Name
- 使用 Pascal 大小写以遵守广泛接受的命名约定:
public class Robot
{
public string Name { get; }
public Robot(string name)
{
Name = name;
}
}
那么 XAML 就是
<ListView ItemsSource="{Binding Robots}" DisplayMemberPath="Name" />