C# 如何在OOP中为类似银行的帐户建模?
为了便于学习,我正在使用WPF构建一个现金管理软件,在正确地建模现金账户时遇到了一些麻烦,这样我就可以在每次交易后看到余额 以下是我现在的总结: 帐户类别:C# 如何在OOP中为类似银行的帐户建模?,c#,wpf,oop,modeling,C#,Wpf,Oop,Modeling,为了便于学习,我正在使用WPF构建一个现金管理软件,在正确地建模现金账户时遇到了一些麻烦,这样我就可以在每次交易后看到余额 以下是我现在的总结: 帐户类别: public class Account { public long Id { get; set; } public string Name { get; set; } public decimal StartingBalance { get; set; } } 类别类别: public class Categor
public class Account {
public long Id { get; set; }
public string Name { get; set; }
public decimal StartingBalance { get; set; }
}
类别类别:
public class Category {
public long Id { get; set; }
public string Name { get; set; }
}
事务类:
public class Transaction {
public long Id { get; set; }
public DateTime Date { get; set; }
public Account Account { get; set; }
public Category Category { get; set; }
public string Description { get; set; }
public decimal TransactionValue { get; set; }
}
我想要实现的是,仅使用WPF绑定功能,填充datagrid并查看给定日期间隔和帐户的以下数据:
Date Account Category Description Value Balance
02/02/10 A1 C1 D1 22.30 230.00
02/03/10 A1 C1 D2 -30.00 200.00
我希望能够选择一个选项“所有账户”,并在“余额”列中查看所有账户余额的总和
代码到目前为止运行良好,但我在datagrid中没有Balance字段,也看不到一种优雅的建模方法,我需要你的帮助,guyz
非常感谢您的帮助。当我这样做时,我倾向于简单地从交易和日记账开始。日记账是交易的集合。您有日记账,以便可以撤消一组交易 我的事务表通常类似于: CR/DR型 帐户1 会计2 数量 添加日期 然后你基本上有一个非常灵活的系统。每个操作都可以反转,CR/DR表示方向,您可以通过拥有不同的帐户和帐户类型来管理所有资金。您可以根据帐户缓存帐户的当前值,如果需要,可以从日记账中重新计算 -编辑: 就运行余额而言,如果不清楚,我会在Account表中设置一个字段,比如CurrentBalance,并根据各种其他因素,通过触发器或代码中的公共项(可能是排队情况)调整该字段。关键是在事务事件中更新它,而不是每次都计算它。在这里,运行余额是您的关键问题。它不属于模型中的任何地方。您需要的称为ViewModel。搜索在WPF实现中常见的MVVM或模型-视图-视图-模型模式
基本上,您需要创建一个称为RegisterTransaction的专门事务类,该类包含每个事务的运行余额字段。您需要为每笔交易计算它。从那里,使用WPF绑定到您的RegisterTransaction对象。@jim,这实际上不是家庭作业,而是自学。@jim-不要仅仅为了添加家庭作业标签而编辑问题。看,我已经在使用MVVM了。所以,我需要一个类似于常规事务的包装器类,它可能从中继承一个adda running balance字段?向上的我不知道这将如何帮助我进行wpf绑定,但日志概念让我了解了如何以低成本实现Matt Brunell的建议。谢谢你的帮助!起来@对不起,那是我的错,我没有看到你留言的那一部分,我主要回答了关于模特的主题问题!很高兴它有点有用。我不会说英语,所以有时候我会浪费很多话,说不出我想说什么,跑步平衡是我的问题,我不知道它叫什么。哈哈,再次谢谢你。