예제 #1
0
        internal RenderMode?GetRenderMode(RenderContext context)
        {
            var renderBind = GetBinding(nameof(Render));

            if (renderBind == null && Render == null)
            {
                return(null);
            }
            if (renderBind != null)
            {
                var rm = context.CalcDataModelExpression(renderBind.Path);
                if (rm is String rmString)
                {
                    if (Enum.TryParse <RenderMode>(rmString, out RenderMode rmResult))
                    {
                        return(rmResult);
                    }
                    throw new XamlException($"Invalid RenderMode '{rmResult}', Expected 'Show', 'Hide', 'ReadOnly' or 'Debug'");
                }
                else if (rm is Boolean rmBool)
                {
                    return(rmBool ? RenderMode.Show : RenderMode.Hide);
                }
            }
            else if (Render != null)
            {
                return(Render);
            }
            return(null);
        }