【发布时间】:2014-05-13 13:47:02
【问题描述】:
我是 WPF 的初学者,所以如果这个问题太简单,请原谅:)
我有一个列表框,我想按各种过滤条件进行过滤。我用特定类型的实例填充此列表框。每个筛选条件都与列表框项的属性之一相关联。 (它们就像:这个或那个字符串属性以字符串 XXX 开头。)
为此,我需要每个属性的菜单,用户可以从中选择他们想要过滤项目的过滤条件。相同类型的每个属性都将具有相同的菜单项集,并具有各种过滤条件。 (对于字符串:以...开头,以...结尾对于整数:低于、高于等) 菜单也需要一些代码,所以我不想分别为每个属性编写这些代码。
我的问题是我不知道我可以通过什么方式对这些进行编程。我无法将它们编程为 UserControls,因为我需要的只是菜单中的 MenuItems。但是我不能将它们编程为 MenuItem 派生类,因为我需要 XAML 来为每种类型设计它们。我可以以某种方式使用 XAML 创建一个 MenuItem 派生类吗?或者您有什么其他建议?
【问题讨论】:
-
每个属性的菜单是什么意思?
-
也许您需要动态地(又名在代码中)创建上下文菜单?这可以是某个类的单个方法(甚至是直接在事件处理程序中,你没有提到 MVVM)。
-
Blam:项目所属的类具有一些属性,例如:StringProperty1、StringProperty2、IntProperty1 等。我有一个用于 StringProperty1 的菜单(带有 StartsWith、EndsWith 等子菜单),一个用于 StringProperty2 的菜单(完全像前一个),IntProperty1 的一个菜单(带有 LowerThan 等子菜单)......我不想为同一类型的各种属性单独编程菜单。
-
Sinatr:这正是我不想做的 :) 我需要 xaml,因为菜单一点也不简单。
-
那么Sheridan 的回答是否正确? “每个属性的菜单”“类型将具有相同的菜单项集”我仍然不清楚
标签: c# wpf xaml user-controls listbox