在我的 ViewModel 类中,有一个名为 EmployeesList 的 [ObservableProperty] ObservableCollection
同样还有另一个[ObservableProperty]称为LeavesList类型ObservableCollection
两者都使用服务异步填充。
在我的页面中有一个绑定到 LeavesList 的 DataGrid (ItemsSource="{x:Bind viewModel.LeavesList}).
其中一列是 DataGridComboBoxColumn,代表员工的姓名。 像往常一样,DataGridComboBoxColumn 的 ItemsSource 绑定到员工列表。 DataGridComboBoxColumn 的值绑定到 Leave 的属性,即 EmployeeId,
确切的问题源于这样一个事实,即 Leave.EmployeeId 实际上是一个指向 Employee.Id 的 FK,但文档指出这些 必须 具有相同的名称才能使绑定工作。 文档
我不是为了取悦 XAML 前端而更改模型类。
所以我做的是一个肮脏和恶心的解决方案,即将 ObservableCollection
使用 XALM 是否有更简洁的方法?或 ViewModel 中的 C# 或其他可重用的地方,没有临时对象和工作区?
<controls:DataGridComboBoxColumn Header="Employee Name" Binding="{Binding EmployeeId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{x:Bind viewModel.TempEmployeeListWithIdReWrittenToEmployeeIdJustToMatchLeave_EmployeeId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Name" Tag="Employee Name" />
我需要规避要求: 列的 ItemsSource 元素必须至少有一个与属于 DataGrid 本身的 ItemsSource 元素同名的属性。(来自Docs)