属性值更改时触发的C#事件

属性值更改时触发的C#事件,c#,properties,C#,Properties,嗨,我有一个属性为Status(例如doc.Status)的文档类,情况如下:当Status属性设置为confirmed时,我想创建另一个相对文档。当单据状态设置为“非已确认”时,我希望删除该相关单据(如果存在)。实现这一目标的最佳方式是什么?要在属性集方法中设置if子句,或在属性值发生更改时使用相同的if子句触发事件?最好的方法是生成一个事件,并将一个方法连接到该事件,以创建另一个文档。如果其他人愿意为您的代码提供服务,这将是一种更具解释性的方式来了解您打算做什么。我肯定会选择事件解决方案。这

嗨,我有一个属性为Status(例如doc.Status)的文档类,情况如下:当Status属性设置为confirmed时,我想创建另一个相对文档。当单据状态设置为“非已确认”时,我希望删除该相关单据(如果存在)。实现这一目标的最佳方式是什么?要在属性集方法中设置if子句,或在属性值发生更改时使用相同的if子句触发事件?

最好的方法是生成一个事件,并将一个方法连接到该事件,以创建另一个文档。如果其他人愿意为您的代码提供服务,这将是一种更具解释性的方式来了解您打算做什么。

我肯定会选择事件解决方案。这将使您的解决方案更加解耦,并且如果您将来喜欢,可以更轻松地使用代码中其他位置的功能。

这在很大程度上取决于您的应用程序。 通常,您的模型(我假设您的文档类所属的位置)不应该包含业务逻辑。它应该只提供允许对数据进行基本操作的数据、方法和回调


您应该以您需要的任何方式在业务逻辑中对其进行最佳处理。

这取决于您希望实现的功能行为

1) 在set属性中使用“If子句: 在这个方法中,一旦编译了文档类,就不能更改行为,因为set属性变成了硬编码。因此,如果要做的唯一事情是创建和删除相关文档,那么这种方法更可取

2) 为“状态”属性的更改创建事件: 当您想将“status”属性发生任何更改后执行的操作与文档类解耦时,应使用此功能。如果在编译文档类时未确定“status”属性更改后要执行的业务逻辑,则此方法更可取


选择权在你

你真正的问题是什么?感觉这个问题的答案是意见的问题。请阅读:。你试过什么,为什么没用?我什么都没试过。我只是在问解决这个问题的最佳方法是什么,这是一个选择的问题。我更愿意实现INotifyPropertyChanged接口并引发事件