【发布时间】:2012-01-02 15:22:21
【问题描述】:
我有两个 DataGrid。 EmployeeGrid 和 WorkSessionsGrid。每个员工都有一个 WorkSessions 列表,我希望用户通过在 EmployeeGrid 中选择一个项目来访问它,这应该使 WorkSessionsGrid 为所选员工生成 WorkSessions。为什么以下不正确?
<DataGrid Name="dg_2" ItemsSource="{Binding ElementName=dg_1, Path=SelectedItem.WorkSessions}"/>
更新 我得出的结论是,问题必须出在其他层之一。 这是我的代码的其余部分,希望有人能够帮助我。 从根本上说我缺少什么吗?
代码隐藏 xaml
public partial class MainWindow : Window
{
public EmployeeViewModel EmployeeViewModel = new EmployeeViewModel();
public MainWindow()
{
InitializeComponent();
menu_employee.DataContext = EmployeeViewModel;
sp_employee.DataContext = EmployeeViewModel;
datagrid_employees.ItemsSource = EmployeeViewModel.EmployeesView;
sp_worksessions.DataContext = EmployeeViewModel.SelectedEmployee.WorkSessions;
menu_worksession.DataContext = EmployeeViewModel.SelectedEmployee.WorkSessions;
datagrid_worksessions.ItemsSource = EmployeeViewModel.SelectedEmployee.WorkSessions;
}
}
WorkSessionViewModel
class WorkSessionViewModel : ViewModelBase
{
private WorkSessions _workSessionsModel = new WorkSessions();
public WorkSessions WorkSessionsView = new WorkSessions();
private WorkSessionModel _selectedWorkSession = new WorkSessionModel();
public WorkSessionModel SelectedWorkSession
...
WorkSessionModel
[Serializable]
public class WorkSessions : ObservableCollection<WorkSessionModel>
{
public WorkSessions()
{
}
}
[Serializable]
public class WorkSessionModel : INotifyPropertyChanged
{
private DateTime _dateTime;
private string _id;
private double _hours;
public WorkSessionModel()
{
}
【问题讨论】:
-
不正确是指这不起作用?
-
是的,这不起作用。我想也许我的错误在于我的 EmployeeViewModel。我的 Viewmodel 有一个 public ObservableCollection
WorkSessions { get; 是否正确?放; } ? -
@litemode : 很抱歉很晚才回复.. 我面临一个类似的问题.. 你最终解决了这个问题吗?请回复。
标签: c# wpf data-binding mvvm