我正在尝试使用 Caliburn.Micro 框架 MVVM 将 ValueTuples 的 ObservableCollection 绑定到 WPF 中的 ComboBox。当我在 ViewModel 中这样做时:
private ObservableCollection<Tuple<string, string>> databasesFromDisk;
public ObservableCollection<Tuple<string, string>> DatabasesFromDisk
{
get => databasesFromDisk;
set
{
databasesFromDisk = value;
NotifyOfPropertyChange(() => DatabasesFromDisk);
}
}
在 XAML 视图中:
<ComboBox x:Name="DatabasesFromDisk" DisplayMemberPath="Item1"/>
它起作用了,ComboBox 用第一个字符串填充。但是当我尝试使用 C# 7 并更改为:
private ObservableCollection<(string name, string path)> databasesFromDisk;
public ObservableCollection<(string name, string path)> DatabasesFromDisk
{
get => databasesFromDisk;
set
{
databasesFromDisk = value;
NotifyOfPropertyChange(() => DatabasesFromDisk);
}
}
当我不更改 XAML 时它不起作用 - 它显示空列表。DisplayMemberPath="name"
当我更改为- 相同的空列表时它不起作用。当我删除它时它不能正常工作DisplayMemberPath
- 它显示整个列表但两个字符串连接在一起。如何使用 ValueTuples 做到这一点?