首页 > 解决方案 > MVVM + 实体框架

问题描述

我有模型“约会”

public class Appointment
    {
        public int Id { get; set; }
        public int BranchId { get; set; }
        public int ClientId { get; set; }
        public int StaffId { get; set; }
        public int ServiceId { get; set; }
        public DateTime Date { get; set; }
        public TimeSpan StartTime { get; set; }
        public TimeSpan EndTime { get; set; }
        public decimal Price { get; set; }
        public string Notes { get; set; }
        public int Status { get; set; }
        public DateTime? Checkout { get; set; }


        public virtual Branch Branch { get; set; }
        public virtual Client Client { get; set; }
        public virtual Service Service { get; set; }
        public virtual Employee Staff { get; set; }
        
    }

这是 View(WPF) 中的 DataGrid

<DataGrid
            x:Name="DataGridCalendar"
            Grid.Row="1"
            Grid.ColumnSpan="8"
            AutoGenerateColumns="False"
            CanUserAddRows="False"
            ItemsSource="{Binding Appointments}"
            SelectedItem="{Binding SelectedItem}">
            <DataGrid.RowStyle>
                <Style TargetType="DataGridRow">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Status}" Value="1">
                            <Setter Property="Background" Value="#3FCB23 " />
                        </DataTrigger>

                        <DataTrigger Binding="{Binding Status}" Value="0">
                            <Setter Property="Background" Value="#F35656 " />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.RowStyle>

            <DataGrid.Columns>
                <DataGridTextColumn
                    Width="*"
                    Binding="{Binding Path=StartTime}"
                    Header="StartTime"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="True" />

                <DataGridTextColumn
                    Width="*"
                    Binding="{Binding Path=EndTime}"
                    Header="EndTime"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="True" />
                <DataGridTextColumn
                    Width="*"
                    Binding="{Binding Path=StaffId}"
                    Header="Employee"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="True" />
                <DataGridTextColumn
                    Width="*"
                    Binding="{Binding Path=Client.Fullname}"
                    Header="Client"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="True" />
                <DataGridTextColumn
                    Width="*"
                    Binding="{Binding Path=ServiceId}"
                    Header="Service"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="True" />
                <DataGridTextColumn
                    Width="*"
                    Binding="{Binding Path=Price}"
                    Header="Price"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="True" />
                <DataGridTextColumn
                    Width="*"
                    Binding="{Binding Path=Notes}"
                    Header="Note"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="True" />
                <DataGridTextColumn
                    x:Name="Status"
                    Width="*"
                    Binding="{Binding Path=Status}"
                    Header="Status"
                    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
                    IsReadOnly="False" />


            </DataGrid.Columns>
        </DataGrid>

在数据库中,客户、员工等通过外键与约会表绑定

数据网格显示客户、员工等的id,如何显示姓名和姓氏?

这是一块 ViewModel

class CalendarViewModel : BaseViewModel
    {
        private List<Appointment> appointment;
        public List<Appointment> Appointments { get => appointment; set => OnChanged(out appointment, value); }

        private async void UpdateTable()
        {
            using BeautySalonDBContext db = new BeautySalonDBContext();
            await db.Appointments.LoadAsync();
            Appointments = db.Appointments.Local.ToList();
        }

如何按 ID 连接这些表并在窗口中显示名字和姓氏?

标签: c#wpfmvvmentity-framework-core

解决方案


推荐阅读