Что-то вроде этого достаточно?:
setDefaultIndex(selectedFit, defaults, array, fab) {
const defaultValue = defaults.filter(item => item.fitCode === selectedFit);
let selectedIndex: number = 0;
const id = fab => {
case 'exterior': return defaultValue[0].exteriorFabricCode
case 'body': return defaultValue[0].bodyLiningCode'
case 'sleeve': return defaultValue[0].sleeveLiningCode'
default: false
}
return id(fab) ? array.findIndex(f => f.id === id(fab)) : selectedIndex
}
Ни один не предпочтен, они служат различным целям. Если Вы хотите диалоговое окно с несколькими страницами, используйте CPropertySheet. При необходимости в диалоговом окне с несколькими страницами, в то время как часть диалогового окна остается фиксированной, используйте CTabCtrl. CTabCtrl может использоваться, делают все, что CPropertySheet может сделать, но так как CTabCtrl более сложен для использования, он не должен использоваться, если Вам не нужна его дополнительная гибкость. CPropertySheet может также использоваться в качестве мастера путем установки нескольких флагов.
Следующее является примером использования CTabCtrl:
Пример aCTabCtrl http://rabien.com/image/xcolordialog1.png
Если бы это был CPropertySheet, то не было бы возможно поместить демонстрационные цвета за пределами вкладок. (И кнопки должны были бы быть внизу),