public static Microsoft.Windows.Controls.DataGridColumn CreateDateColumn(string path, string header) { ExtendedDataGridTemplateColumn<Microsoft.Windows.Controls.DatePicker> gridTemplateColumn = new ExtendedDataGridTemplateColumn<Microsoft.Windows.Controls.DatePicker>(); DataTemplate dataTemplate = new DataTemplate(); FrameworkElementFactory frameworkElementFactory = new FrameworkElementFactory(typeof(Microsoft.Windows.Controls.DatePicker)); frameworkElementFactory.SetBinding(Microsoft.Windows.Controls.DatePicker.SelectedDateProperty, new Binding() { Path = new PropertyPath(path), Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); dataTemplate.VisualTree = frameworkElementFactory; gridTemplateColumn.MinWidth = 100.0; gridTemplateColumn.Width = 140.0; gridTemplateColumn.Header = header; gridTemplateColumn.CellEditingTemplate = dataTemplate; gridTemplateColumn.CellTemplate = createDataTimeTextBolckCellTemplate(path); return gridTemplateColumn; } private static DataTemplate createDataTimeTextBolckCellTemplate(string path) { DataTemplate dataTemplate = new DataTemplate(); FrameworkElementFactory frameworkElementFactory = new FrameworkElementFactory(typeof(TextBlock)); Binding binding = new Binding(); binding.Path = new PropertyPath(path); binding.StringFormat = "yyyy-MM-dd"; binding.Mode = BindingMode.OneWay; frameworkElementFactory.SetBinding(TextBlock.TextProperty, binding); frameworkElementFactory.SetValue(FrameworkElement.VerticalAlignmentProperty, VerticalAlignment.Center); frameworkElementFactory.SetValue(FrameworkElement.HorizontalAlignmentProperty, HorizontalAlignment.Center); dataTemplate.VisualTree = frameworkElementFactory; return dataTemplate; }
FrameworkElementFactory中的SetBinding与SetValue
内容版权声明:除非注明,否则皆为本站原创文章。