我正在尝试将GridViewColumn.DataTemplate设置为TextBox VisualTree。到目前为止的代码是:
//GridViewColumnCollection columns
DataTemplate template = new DataTemplate();
FrameworkElementFactory elementFactory = new FrameworkElementFactory(typeof(TextBox));
elementFactory.SetBinding(TextBox.TextProperty, new Binding { Path = new PropertyPath("Position") });
elementFactory.SetValue(TextBox.MinWidthProperty, new GridLength(50));
template.VisualTree = elementFactory;
columns[1].CellTemplate = template;
当我运行此代码时,我收到以下错误:
50不是属性'MinWidth'的有效值。
在这一行:
elementFactory.SetValue(TextBox.MinWidthProperty, new GridLength(50));
我也尝试将值设置为50,但无济于事!
我做错了什么?
提前致谢。
答案 0 :(得分:1)
根据MSDN,MinWidth
依赖项属性的类型为double
。您应该将其设置为double而不是GridLength
对象。
物业价值
输入:System.Double
元件的最小宽度,与设备无关的单位(每单位1/96英寸)。默认值为0.0。该值可以是等于或大于0.0的任何值。但是,PositiveInfinity无效,也不是Double.NaN。
答案 1 :(得分:1)
我完全同意bouvierr。我正在研究一个WPF项目,这也是我遇到的问题。最后,通过MSDN文档,我注意到概念背后的代码只接受双数据类型作为整数。
textBox.SetValue(HeightProperty, 120.0);
textBox.SetValue(WidthProperty, 360.0);
textBox.SetValue(FontSizeProperty, 14.0);
textBox.SetValue(MinWidthProperty, 50.0);