我开始在我的WPF Caliburn.Micro应用程序中使用ComponentOne的C1FlexGrid。我想知道如何将列的宽度设置为最大内容宽度。我尝试将其设置为Auto,但所有列的宽度仍然相同。
我像这样应用了AutoSizeColumns:
protected override void OnViewAttached(object view, object context)
{
var View = (FirstDataEntryView)view;
View.EnrollmentFiles.AutoSizeColumns(0, 4, 5);
}但这也没什么用。
谢谢
发布于 2012-08-09 02:00:06
由于虚拟化的原因,使用GridLength.Auto通常不适用于这些列宽。FlexGrid有几个方法可以自动调整列的大小,但是这些列必须是可见的,否则它们将不会被计算,并将保持静态宽度。Here是一个非常不适合生产的示例,说明了如何做到这一点。这就是为什么我从来不喜欢ComponentOne控件的原因--感觉它们被困在WinForms模式中。
编辑:为特定于CM的用法添加一些代码。
protected override void OnViewAttached(object view, object context) {
View = (YourViewType)view;
View.flexGrid.AutoSizeColumns(0,4,5);
}至于从视图模型访问视图是否“符合”MVVM理论--从技术上讲是不符合的,但有时您被迫使用无法通过XAML自动配置的控件,并且由于这样或那样的原因,您不能使用视图的代码隐藏。
https://stackoverflow.com/questions/11835186
复制相似问题