我处于适用多种显示模式的情况。 类似的东西:
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"。
答案 0 :(得分:0)
您可以通过设置正确的索引来确定其优先级:
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("a")
{
ContextCondition = context => AFunctionThatReturnsTrue()
});
DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("b")
{
ContextCondition = context => ADifferentFunctionThatReturnsTrue()
});
这应该确保在 B 之前提供模式 A ,即使两个条件都满足。
修改强> 这没有任何官方文档的支持,但我在我的项目中尝试了它并且它有效。