我有两个 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
...
工作 session 模型
[Serializable]
public class WorkSessions : ObservableCollection<WorkSessionModel>
{
public WorkSessions()
{
}
}
[Serializable]
public class WorkSessionModel : INotifyPropertyChanged
{
private DateTime _dateTime;
private string _id;
private double _hours;
public WorkSessionModel()
{
}
最佳答案
改为尝试绑定(bind)到元素。
<DataGrid Content="{Binding ElementName=ListOfEmp, Path=SelectedItem.Name}" DataContext="{Binding}" />
关于c# - 将数据网格绑定(bind)到另一个数据网格的选定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8702475/