【发布时间】:2017-04-07 05:58:33
【问题描述】:
假设我的模型如下所示,
public class Organization
private string _organizationName;
private List<Employee> _employees;
private List<Contractor> _contractors;
public string OrganizationName
{
get
{
return _organizationName;
}
set
{
_organizationName= value;
}
}
public List<Employee> Employees
{
get { return _employees; }
set { _employees = value; }
}
public List<Contractor> Contractors
{
get
{
return _contractors;
}
set
{
_contractors = value;
}
}
}
}
public class Employee
{
public string Name { get; set; }
public int EmpID { get; set; }
public double Salary { get; set; }
}
public class Contractor
{
public string Name { get; set; }
public int ContractorID { get; set; }
public double ExperianceCredit { get; set; }
}
我有一个 View(MainWindow) 和一个 Associated ViewModel(OrganizationViewModel)
视图(主窗口)
拥有三个控件:
1) ListView -OrganizationListView 2) 数据网格 -EmployeesDataGrid 3) DataGrid -ContractorsDataGrid
ViewModel(组织视图模型)
private ObservableCollection<Organization> _organizations
public ObservableCollection<Organization> Organizations
{
get
{`enter code here`
return _organizations;
}
set
{
_organizations = value;
}
}
绑定:
ListView - OrganizationListView - 绑定到组织(ObservableCollection) DataGrid - EmployeesDataGrid - 绑定到 Organizations.Employees DataGrid - ContractorsDataGrid - 绑定到 Organizations.Contractors
我在访问员工时遇到问题 & 来自 Organizations(ObservableCollection) 的承包商在尝试将其绑定到视图中的相应控件时?
EmployeesDataGrid 和 ContractorsDataGrid 应该依赖于 OrganizationListView
这是可以实现的还是我应该采用不同的方法?
【问题讨论】:
-
您能发布您的 XAML 代码(绑定代码)吗?
-
您遇到了什么问题? GUI不显示任何东西或什么?如果没有 BindingExpression,您是否检查了输出?如果绑定正常并且 VM 包含任何数据,您所要做的就是为您的 ListViews 定义 ItemTemplate
-
尝试为 Model 中的 Employees 和 Contractors 属性实现 INotifyPropertyChanged。