C#如何确定多种显示模式的优先级?



我的情况是,多种显示模式适用。 像这样:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("a")
{
ContextCondition = context => AFunctionThatReturnsTrue()
});
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("b")
{
ContextCondition = context => ADifferentFunctionThatReturnsTrue()
});

我所经历的是,在这种情况下,始终应用显示模式"b"。 问题是:我必须做什么才能选择显示模式"a"?

我尝试过但没有奏效的:

  • 我尝试更改注册顺序。

  • 我尝试更改显示模式的名称,以便显示模式"b"按字母顺序排列在"a"之前。

您可以通过设置适当的索引来确定它的优先级:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("a")
{
ContextCondition = context => AFunctionThatReturnsTrue()
});
DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("b")
{
ContextCondition = context => ADifferentFunctionThatReturnsTrue()
});

这应确保即使同时满足两个条件,模式A也将在B之前提供。

编辑:这没有任何官方文档的支持,但我在我的项目中尝试过它并且它有效。

最新更新