WPF:软删除和绑定?

时间:2010-03-26 14:43:26

标签: wpf binding inotifypropertychanged soft-delete

我有实现INotifyProperyChanged的自定义对象,现在我想知道是否可以实现软删除,它可以很好地与绑定一起使用?每个对象都有一个IsDeleted属性,如果此属性设置为true,则不会在GUI中显示。我正在考虑制作一个自定义标记扩展来装饰Binding类,但它没有像预期的那样解决。现在我正在考虑将MultiBinding与IsDeleted一起用作绑定属性之一,以便转换器能够找出哪个对象被删除。但是这个解决方案听起来很复杂而且很无聊。

有人知道如何实现软删除绑定吗?

2 个答案:

答案 0 :(得分:2)

您可以将UIElement的Property Visibility绑定到对象的属性IsDeleted,以隐藏或显示元素。

作为一个例子,我使用TextBlock。在XAML中,您可以编写

<TextBlock Text="IsDeleted" Visibility={Binding IsDeleted}/>

注意:在上面的示例中,当IsDeleted为true时,TextBlock可见。我会定义一个正属性,例如对象上的Exists。因此,您不必否定布尔值或构建自己的转换器。

WPF有一个buildin转换器,它将boolean转换为可见性的枚举值。

答案 1 :(得分:1)

实现软删除的另一种方法是维护和公开一个集合,该集合仅包含视图模型中尚未删除的项目以及所有项目的集合。这有(在我看来)非常好的优点,这不是你的观点需要考虑的事情。