Получение данных выделенной строки табличного контрола и связанных с ними данных карточки.
Получение данных выделенной строки табличного контрола и связанных с ними данных карточки.¶
using System.Linq;
using Tessa.Cards;
using Tessa.UI;
using Tessa.UI.Cards;
using Tessa.UI.Cards.Controls;
ICardModel cardModel = ... ; // модель основной карточки, можно получить из контекста расширения
// получение табличного контрола по уникальному алиасу
IControlViewModel control = cardModel.Controls["ControlName"];
// приведение табличного контрола к GridViewModel
GridViewModel table = control as GridViewModel;
if (table != null)
{
// получение выделенных в таблице строк
IList<CardRowViewModel> selectedRows = table.SelectedRows;
if (selectedRows.Count > 0)
{
int index = ... ; // индекс нужной строки среди выделенных
// получение данных выделенной строки
T data1 = selectedRows[index].Model.Get<T>("FieldName");
// получение связанных данных коллекционной секции карточки
IEnumerable<CardRow> data2 = cardModel.Card.Sections["SectionName"].Rows.Where(x => ...);
}
}