C1FlexGrid width



我开始为我的WPF Caliburn.Micro应用程序使用ComponentOne的C1FlexGrid。我想知道如何将其中一列设置为最大内容宽度。我试着将其设置为"自动",但所有列的宽度仍然相同。

我应用了AutoSizeColumns,如下所示:

      protected override void OnViewAttached(object view, object context)
  {
      var View = (FirstDataEntryView)view;
      View.EnrollmentFiles.AutoSizeColumns(0, 4, 5);
  }

但这无济于事。。。

感谢

使用GridLength.Auto通常不适用于这些列宽,因为虚拟化。FlexGrid有两种方法可以自动调整列的大小,但列必须是可见的,否则它们将不会被计算,并且将保持静态宽度。下面是一个非常不适合生产的示例,说明如何做到这一点。FWIW这就是我从不喜欢ComponentOne控件的原因——感觉它们被困在WinForms模式中。

edit:添加一些用于CM特定用途的代码。

protected override void OnViewAttached(object view, object context) {
    View = (YourViewType)view;
    View.flexGrid.AutoSizeColumns(0,4,5);
}

就从视图模型访问视图是否"符合"MVVM理论而言——从技术上讲,这是不符合的,但有时您被迫使用无法通过XAML自动配置的控件,并且由于某种原因,您不能使用视图的代码隐藏。

最新更新