C1FlexGrid宽度

时间:2012-08-06 20:10:12

标签: wpf componentone c1flexgrid

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

我像这样应用了AutoSizeColumns:

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

但这没有帮助......

由于

1 个答案:

答案 0 :(得分:1)

由于虚拟化,使用GridLength.Auto通常不适用于这些列宽。 FlexGrid有几种自动调整列的方法,但列必须是可见的,否则它们将不会被计算并保持静态宽度。 Here是一个非常非生产价值的示例,说明如何执行此操作。 FWIW这就是为什么我从不喜欢ComponentOne控件 - 感觉就像他们被困在WinForms模式中一样。

编辑:为特定于CM的用法添加一些代码。

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

至于从viewmodel访问视图是否与MVVM理论“兼容” - 从技术上讲它不是,但有时你被迫使用无法通过XAML自动配置的控件,你可以'由于某种原因,使用View的代码隐藏。