Элемент дерева в боковой панели Firefox с динамическими элементами и функциональностью кликов

Есть еще один способ передать аргументы CreateInstance через именованные параметры.

Исходя из этого, вы можете передать массив по направлению к CreateInstance. Это позволит вам иметь 0 или несколько аргументов.

public T CreateInstance<T>(params object[] paramArray)
{
  return (T)Activator.CreateInstance(typeof(T), args:paramArray);
}
1
задан encryptor 10 May 2010 в 09:17
поделиться

1 ответ

Во-первых, поместите обработчик события onclick на само дерево, а не на элементы. Когда пользователь щелкнет по ячейке, из-за всплеска событий дерево поймает это событие, независимо от того, какая ячейка получила щелчок:

function clickedOnSomething(event) {
    if(event.originalTarget.localName == "treechildren") {
        //do something here based on who is event.originalTarget
    }
}

Во-вторых, для динамического создания содержимого вы создаете пустое дерево в XUL:

<tree id="myTree" onclick="clickedOnSomething(event)" flex="1" seltype="single">
    <treecols>
        <treecol id="myCol" label="Stuff" primary="true" flex="1" />
    </treecols>
    <treechildren/>
</tree>

Затем в JavaScript вы создаете объект, реализующий интерфейс nsITreeView (см. ссылку ниже), и назначаете его в качестве представления дерева, созданного в XUL.

Этот объект будет служить интерфейсом для виджета Tree к данным и позволит дереву автоматически обновляться при изменении данных.

Более подробную информацию о пользовательских представлениях дерева вы можете найти здесь: https://developer.mozilla.org/en/XUL_Tutorial/Custom_Tree_Views

2
ответ дан 3 September 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: