CSLA学习之控制菜单可见性

在SMGIS.Ventilate.addin菜单工具配置文件中,定义如下:

//控制条件

<Runtime>
  <Import assembly="../SMGIS.Ventilate.dll">
    <ConditionEvaluator name="ActiveConnDataBadeContext"
                      class="SMGIS.Ventilate.Commands.ActiveConnDataBadeConditionEvaluator"/>
    </Import>

  </Runtime>

定义菜单为:

 <Condition name = "ActiveConnDataBadeContext" action="Disable">

<MenuItem id = "menuGasCoalDust"  label= "瓦斯煤尘(&amp;W)" class= "SMGIS.Ventilate.Commands.InputGasCoalDustCommand"/>

在SMGIS.Ventilate.Commands命名空间下写:

 /// <summary>
    /// 控制与数据库连接相关菜单的显示
    /// </summary>
    public class ActiveConnDataBadeConditionEvaluator : IConditionEvaluator
    {
        public bool IsValid(object caller, Condition condition)
        {
            return SMGIS.Monitor.BLL.Config.OracleHelper.IsConnection;
        }
    }

这就可以实现用SMGIS.Monitor.BLL.Config.OracleHelper.IsConnection来控制menuGasCoalDust的显示情况。

原文地址:https://www.cnblogs.com/wylaok/p/2796434.html