Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 什么是IVisual';枚举的ObjectInstances方法用于?_Powerbi - Fatal编程技术网

Powerbi 什么是IVisual';枚举的ObjectInstances方法用于?

Powerbi 什么是IVisual';枚举的ObjectInstances方法用于?,powerbi,Powerbi,以下是IVisual接口的EnumerateObjectInstance规范: /** Gets the set of objects that the visual is currently displaying. */ enumerateObjectInstances?(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration; 我看到的每个示例和内置IVisual都实现了自己的Enum

以下是IVisual接口的EnumerateObjectInstance规范:

/** Gets the set of objects that the visual is currently displaying. */
enumerateObjectInstances?(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration;

我看到的每个示例和内置IVisual都实现了自己的EnumerateObjectInstance。通过查看每个对象,它所做的是构建并返回一个关于视觉对象显示的某些或所有视觉对象的信息数组,通常根据给该方法的参数进行过滤。但该方法似乎没有在基本操作中调用。它的目的是什么,只是为了测试吗?

好的,回答我自己的问题。AsterPlot custom visual有助于解释enumerateObjectInstances的作用,因为它有注释:

// This function retruns the values to be displayed in the property pane for each object.
// Usually it is a bind pass of what the property pane gave you, but sometimes you may want to do
// validation and return other values/defaults
public enumerateObjectInstances... {
  var instances: VisualObjectInstance[] = [];
  switch (options.objectName) {
    case 'label':
      ...
      instances.push(label);
      break;
    case 'outerLine':
      ...
      instances.push(outerLine);
      break;
  }
  return instances;
}
重要的是,这些开关盒“标签”和“外线”与AsterPlot的功能对象中的属性名称相匹配:

public static capabilities: VisualCapabilities = {
  ...
  objects: {
    ...
    label: {
      ...
    },
    outerLine: {
      ...
    }
  }
};
因此,PowerBI应用程序使用enumerateObjectInstances来填充和连接可视化应用程序的格式窗格。在AsterPlot的示例中,如果删除enumerateObjectInstances,将无法切换外线是否显示