首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C1FlexGrid宽度

C1FlexGrid宽度
EN

Stack Overflow用户
提问于 2012-08-07 04:10:12
回答 1查看 2.3K关注 0票数 2

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

我像这样应用了AutoSizeColumns:

代码语言:javascript
复制
      protected override void OnViewAttached(object view, object context)
  {
      var View = (FirstDataEntryView)view;
      View.EnrollmentFiles.AutoSizeColumns(0, 4, 5);
  }

但这也没什么用。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-09 02:00:06

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

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

代码语言:javascript
复制
protected override void OnViewAttached(object view, object context) {
    View = (YourViewType)view;
    View.flexGrid.AutoSizeColumns(0,4,5);
}

至于从视图模型访问视图是否“符合”MVVM理论--从技术上讲是不符合的,但有时您被迫使用无法通过XAML自动配置的控件,并且由于这样或那样的原因,您不能使用视图的代码隐藏。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11835186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档