Ширина 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, и вы не можете использовать Просмотреть код позади по той или иной причине.

Другие вопросы по тегам