0

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

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

4

2 回答 2

2

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

例如,我使用 TextBlock。在 XAML 中,您可以编写

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

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

WPF 有一个内置转换器,可将布尔值转换为 Visibility 的枚举值。

于 2010-03-26T14:56:54.240 回答
1

实现软删除的另一种方法是维护和公开一个集合,该集合除了包含所有项目的集合之外,还只包含视图模型中尚未删除的项目。这(在我看来)有一个非常大的优点,那就是你的观点根本不需要考虑。

于 2010-03-26T23:57:30.217 回答