Эта рекурсивная функция работает для ваших нужд:
function rotateChildren(array, key) {
if (!array || !array.length) {
return array;
}
return array.filter(child => {
if (child) {
child.children = rotateChildren(child.children, key);
return child.id !== key;
}
return !!child;
});
}
const data = [
{
id: 2,
children: [
{
id: 1,
children: []
}
]
},
{
id: 3,
children: [],
}
];
console.log(rotateChildren(data, 1));
console.log(rotateChildren(data, 2));
console.log(rotateChildren(data, 3));
Я полагаю, что это - просто недостаток LinkLabel; это не генерирует событие щелчка при использовании его мнемосхемы. Однако я использовал следующий код как обходное решение с хорошим успехом:
class BetterLinkLabel : LinkLabel
{
protected override bool ProcessMnemonic( char charCode )
{
if( base.ProcessMnemonic( charCode ) )
{
// TODO: pass a valid LinkLabel.Link to the event arg ctor
OnLinkClicked( new LinkLabelLinkClickedEventArgs( null ) );
return true;
}
return false;
}
}