gpt4 book ai didi

c# - 从 ObservableCollection 对象获取字符串属性

转载 作者:行者123 更新时间:2023-12-03 10:55:33 24 4
gpt4 key购买 nike

在我的 C# 应用程序中,我正在调用一个返回数组的方法:

projectArray = client.getProjectList(username, password);

由于我想使用 MVVM 模式将应用程序重构为 WPF,我应该使用 ObservableCollection为项目 list 。

我的 View 模型包含:
// Members
CProject[] projectArray;
ObservableCollection<CProject> projectList;

// Properties
public ObservableCollection<CProject> ProjectList {
get { return projectList; }
set {
projectList = value;
OnPropertyChanged("ProjectList");
}
}

以及设置属性的代码:
projectArray = client.getProjectList(username, password);
projectList = new ObservableCollection<CProject>(projectArray);
this.ProjectList = projectList;

问题来了。我的 View 包含一个绑定(bind)到 View 模型的 ProjectList 的组合框属性(property)。绑定(bind)工作正常。然而,组合框显示的值如 MyApp.SoapApi.CProject .我想显示可通过 CProject.database.name 访问的项目名称.

这样做的适当和正确方法是什么?我尝试使用 projectList = value.database.name但这是一个与属性类型冲突的字符串 CProject .

最佳答案

您的组合框包含一个名为 DisplayMemeberPath 的属性,将其设置为“database.name”。
使用 View 进行输出格式化,而不是 View 模型!

或为组合框中的项目创建模板

<ComboBox ItemsSource="{Binding ...}">
<ComboBox.ItemsTemplate>
<DataTemplate>
<Label Content="{Binding database.name}"/>
</DataTemplate>
</ComboBox.ItemsTemplate>
</ComboBox>

关于c# - 从 ObservableCollection<CProject> 对象获取字符串属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13418640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com