c# - Wpf Mvvm 实体框架数据库优先绑定
问题描述
我正在使用 Wpf Mvvm Entity Framework 数据库优先构建一个应用程序。我的模型是自动生成的,所以我不能把它NotifyPropertyChanged
放在实体中..所以我重写了我的 viewModel 中的所有东西,女巫很难看..
我不认为我很清楚,所以一个代码示例,不会为了更清楚而发布所有内容。
用户控制
<TextBox Name="tbClientNumber" Text="{Binding ClientNumber,
UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
视图模型类:
public class ClientManagerViewModel : BaseViewModel
{
public int ClientNumber
{
get { return _clientNumber; }
set
{
_clientNumber= value;
RaisePropertyChanged("ClientNumber");
}
}
}
自动生成的实体:
public partial class Client
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Client()
{
}
public int idClient { get; set; }
public int ClientNumber{ get; set; }
}
谢谢大家
解决方案
如果您不想包装实体类,Fody 可能会帮助您。您可以INotifyPropertyChanged
在部分类定义上实现。我还没有尝试过。
所有实现 INotifyPropertyChanged 的类都会将通知代码注入到属性设置器中。
https://github.com/Fody/PropertyChanged
实际上,我通常像你一样简单地把它们包起来。
推荐阅读
- json - 如何使用 RStudio 解析 txt 文件中的 json 字符串?
- jasper-reports - 当输入控制器为空时,jasper 报告为空
- c++ - 根据堆栈跟踪过滤掉中断
- android - 获取目录甚至从图库中删除
- javascript - 如何在下一个 .then() 中访问日期 - 获取 api
- windows - Windows 10 上的 Symfony 5 安装一直运行旧版本
- c# - 从数组字符串中删除多余的字符串
- sql - 在 shell 脚本中读取所有出现的 mm/dd/yyyy 并将其转换为 dd-MON-yyyy
- time - 我正在为天气应用程序使用 Dark Sky API,这次是什么意思?
- c++ - 前向迭代器上的 stable_partition