Ширина C1FlexGrid
Я начал использовать C1FlexGrid в ComponentOne для своего приложения WPF Caliburn.Micro. Интересно, как я могу установить для столбцов максимальную ширину содержимого. Я попытался сделать это Авто, но ширина все еще одинакова для всех столбцов.
Я применил AutoSizeColumns следующим образом:
protected override void OnViewAttached(object view, object context)
{
var View = (FirstDataEntryView)view;
View.EnrollmentFiles.AutoSizeColumns(0, 4, 5);
}
но это не помогло...
Спасибо
1 ответ
Использование GridLength.Auto обычно не работает для этих столбцов ширины из-за виртуализации. FlexGrid имеет несколько методов для автоматического изменения размеров столбцов, но столбцы должны быть видимыми, иначе они не будут рассчитаны и останутся статическими. Вот очень непроизводительный пример того, как это сделать. Вот почему мне никогда не нравились элементы управления ComponentOne - казалось, что они застряли в режиме WinForms.
редактировать: добавление некоторого кода для использования в конкретных CM.
protected override void OnViewAttached(object view, object context) {
View = (YourViewType)view;
View.flexGrid.AutoSizeColumns(0,4,5);
}
Что касается того, является ли доступ к представлению из модели представления "совместимым" с теориями MVVM - технически это не так, но иногда вы вынуждены использовать элементы управления, которые просто не могут быть автоматически настроены через XAML, и вы не можете использовать Просмотреть код позади по той или иной причине.